Что выведет код Junior Series, DataFrame и индекс обновлено

inplace возвращает None

Вопрос

Что выведет код? По строке на каждый print.

import pandas as pd
df = pd.DataFrame({'a': [3, 1, 2]})
r = df.sort_values('a', inplace=True)
print(r)
print(df['a'].tolist())
print(df.index.tolist())

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: None, [1, 2, 3], [1, 2, 0]. Метод с inplace=True возвращает None, а сам df отсортирован.

Что выведет

None
[1, 2, 3]
[1, 2, 0]

Разбор

Метод с inplace=True возвращает None, а сам df отсортирован. Индекс при сортировке едет вместе со строками: значение 1 стояло на позиции 1, 2 на позиции 2, 3 на позиции 0, поэтому индекс [1, 2, 0]. Чтобы получить 0..n-1, нужен ignore_index=True или reset_index(drop=True).

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.