Модификация фрейма данных inplace с возвращаемым значением
Я читаю "python для анализа данных" Уэса Маккинни и увидел следующий код
# Always returns a reference to a DataFrame
_ = data.rename(index={'Ohio':'Indiana'}, inplace=True)
Есть ли причина установить изменение inplace на _
?
2 ответа:
_
обычно используется для обозначения переменной, которую мы не заботимся/не хотим использовать.Это обычно имеет больше смысла, когда вы вытаскиваете кортеж и не заботитесь обо всех значениях, например
a, _ = (1, 2) # pulls out a == 1
В этом случае, с одним значением, нет никаких оснований делать это. Вы можете безопасно очистить этот код до:
data.rename(index={'Ohio':'Indiana'}, inplace=True)
Я подозреваю, что это рефактор из:
data = data.rename(index={'Ohio':'Indiana'})
Который сделал бы комментарий "всегда возвращает ссылку на фрейм данных" имеет смысл (когда вы используйте inplace он возвращает None, а не фрейм данных!).
Мы используем
_
для представления значения, которое нас не волнует. Это условность. Аргументinplace
изменит объект, на который в данный момент указываетdata
, вместе с методомrename
, возвращающим другую ссылку на него. Это утверждение является взятием возвращаемого значения изrename
и присвоением его_
, предполагая, что мы собираемся выбросить его. Это не будет иметь значения, потому что у нас уже есть переменная, а именноdata
, которая будет иметь результаты из-заinplace=True
.Согласно комментарию Израэля.
rename
сinplace=True
возвращаетNone
, что делает его совершенно неуместным для назначения_
., так что ответ на ваш вопрос, нет.