【发布时间】:2016-10-24 02:01:19
【问题描述】:
我有名为 df 的数据框,其原始形状为 (4361, 15)。 agefm 列的一些值是 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的输出。然后,如果它没有改变,我猜它一定是因为这个方法创建了你的数据框的副本。然后你修改一个在行尾消失的临时数据框,而不是你的原始数据框(但我不确定)。无论如何,Jezrael 的回答一如既往的好。 -
@ysearka 这似乎是一个很好的解释))
标签: python python-2.7 pandas nan