панды не модифицирующие df - PullRequest
0 голосов
/ 25 мая 2018

новичок в пандах здесь.У меня есть df:

inked=tracker[['A','B','C','D','AA','BB','CC', 'DD', 'E', 'F']]

имена столбцов из одной буквы содержат имена, а имена столбцов из двух букв содержат цифры, но также и NaN.

Я конвертирую все NaN в нули, используя это:

inked.loc[:,'AA':'DD'].fillna(0)

и это работает, но когда я делаю

inked.head()

, я получаю исходный df с NaN.Как я могу внести изменения постоянно в DF?

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Обычно при выполнении операций с кадрами данных, когда вы хотите изменить кадр данных, вам необходимо либо переназначить его себе или новой переменной.(По моему опыту хотя бы)
inked = inked.loc[:,'AA':'DD'].fillna(0)

0 голосов
/ 25 мая 2018

По умолчанию fillna() не выполняется на месте.Если вы работали непосредственно с DataFrame, вы могли бы использовать аргумент inplace=True, например:

inked.fillna(0, inplace=True)

Однако, если вы сначала выберете подмножество столбцов, используя loc, торезультаты потеряны.

Это было покрыто здесь .По сути, вам необходимо переназначить обновленный DataFrame обратно на оригинальный DataFrame.Для списка столбцов (а не для диапазона, как вы изначально пытались) вы можете сделать это:

inked[['AA','DD']] = inked[['AA','DD']].fillna(0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...