У меня есть dataframe с именем df
с оригинальной формой (4361, 15)
. Некоторыми значениями столбцов agefm
являются NaN. Только посмотрите:Как установить значения в кадре данных pandas на основе значений NaN другого столбца?
> df[df.agefm.isnull() == True].agefm.shape
(2282,)
Затем я создаю новый столбец и установить все его значения 0:
df['nevermarr'] = 0
Так что я хотел бы установить nevermarr
значение 1, то в этой строке agefm
является Nan:
df[df.agefm.isnull() == True].nevermarr = 1
Ничего не изменилось:
> df['nevermarr'].sum()
0
Что я делаю неправильно?
Когда вы выполняете 'df [df.agefm.isnull() == True] .nevermarr = 1', вы можете удалить' == True', поскольку он уже является выходом 'isnull'. Тогда, если это не изменится, я предполагаю, что это должно быть потому, что этот метод создает копию вашего фрейма данных. Затем вы изменяете временный фрейм данных, который исчезает в конце строки, а не исходный фрейм данных (но я не уверен). Во всяком случае, ответ Джераэля хорош, как всегда. – ysearka
@ysearka Это похоже на хорошее объяснение)) – Rocketq