df
Fruits Veg Non_veg
1 Apple Broccoli Chicken
2 Banana Nan Nan
3 Nan Tomato Nan
在上面的示例数据框中,我有Nan值,需要填写 一次全部向前填充,我使用的代码是:
df[['Fruits','Veg','Non_veg']].fillna(method='ffill',inplace=True)
这种编码方式正确吗?如果前填充单元格具有上述数据框中的另一个Nan值,该如何克服?
填充的预期输出为:
df
Fruits Veg Non_veg
1 Apple Broccoli Chicken
2 Banana Broccoli Chicken
3 Banana Tomato Chicken
答案 0 :(得分:1)
使用:DataFrame.ffill
。在这里您可以了解如何使用就地:How to use inplace=True
#df.replace('Nan',np.nan) #if NaN is string
cols=['Fruits','Veg','Non_veg']
df[cols]=df[cols].ffill()
答案 1 :(得分:0)
请勿在切片对象上使用inplace
。进行伪装
df.loc[:, ['Fruits','Veg','Non_veg']] = df.loc[:, ['Fruits','Veg','Non_veg']].ffill()
答案 2 :(得分:0)
您应删除inplace=True
df['Fruits','Veg','Non_veg'] = df['Fruits','Veg','Non_veg'].fillna(method= 'ffill')