我有一个数据框。我正在关注的两个主要栏目是“生存”和“alive_at_1”。我想填充'alive_at_1'中缺失的值,只有零,只有生存期少于12(月)
我做了一个子选择:
df[(df.alive_at_1.isnull()) & (df.survival <= 12)]
survival still_alive age_at_heart_attack pericardial_effusion fractional_shortening \
10.0 0.0 57.0 0.0 0.24
9.0 0.0 73.0 0.0 0.12
12.0 0.0 67.0 1.0 0.11
12.0 0.0 61.0 1.0 0.19
epss lvdd wall_motion_score wall_motion_index \
14.8 5.26 18.00 1.38
NaN 6.78 16.67 1.39
10.3 4.68 11.00 1.00
13.2 5.04 19.00 1.73
alive_at_1
NaN
NaN
NaN
NaN
现在我只想填写'alive_at_1'中的那些NaN,而不是'epss'中的NaN。
我尝试了这些方法(以及它们的变体)并且它们不起作用(我已经尝试了.ix
和.loc
):
df.ix[(df.alive_at_1.isnull()) & (df.survival <= 12), 'alive_at_1'].fillna(0, inplace = True)
df.ix[(df.alive_at_1.isnull()) & (df.survival <= 12), -1].fillna(0, inplace = True)
df.ix[(df.alive_at_1.isnull()) & (df.survival <= 12), 'alive_at_1'] = 0
df.ix[(df.alive_at_1.isnull()) & (df.survival <= 12)].fillna({'alive_at_1':0}, inplace = True)
我的问题是
最好的方法是什么(我不想只是手动输入索引,但如果这是我唯一的方式)
为什么我尝试不工作的方式?
谢谢!