我正在尝试清理熊猫中的一个非常大的数据框。
我有标记为currentAge,currentAge2,sex,sex2,height,height2,weight,weight2的列。对于某些行,有一个currentAge值,而对于其他行,有currentNge2的NaN。它也可以采用另一种方式,即对于某些行,currentAge2有一个值,currentAge有NaN。其他指标(性别,体重和身高)也是如此。
我想将诸如currentAge和currentAge2之类的通用指标合并在一起,以使一列currentAge没有NaN。
我该怎么做?
答案 0 :(得分:2)
您需要使用fillna
。让我们考虑一下这个数据帧,其中一些年龄位于currentAge列中,而另一个存在于currentAge2中:
df = pd.DataFrame({'currentAge':[np.nan, 12, 15, 16, np.nan],
'currentAge2':[8, np.nan, np.nan, np.nan, 24]})
currentAge currentAge2
0 NaN 8.0
1 12.0 NaN
2 15.0 NaN
3 16.0 NaN
4 NaN 24.0
然后您可以做的是:df['currentAge'] = df['currentAge'].fillna(df['currentAge2'])
用第二列中的值填充第一列中的所有nan
,然后得到:
currentAge currentAge2
0 8.0 8.0
1 12.0 NaN
2 15.0 NaN
3 16.0 NaN
4 24.0 24.0
要删除列currentAge2,然后执行df = df.drop('currentAge2',1)
,您将填充一个简单列currentAge。