如何一次填充多个列的Nan值?

2024-05-15 17:40:53 发布

您现在位置:Python中文网/ 问答频道 /正文

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值,如何克服

ffill的预期输出为:

df
       Fruits  Veg       Non_veg
     1 Apple   Broccoli  Chicken
     2 Banana  Broccoli  Chicken
     3 Banana  Tomato    Chicken

Tags: 数据代码示例appledfnanbanananon
3条回答

不要在切片对象上使用inplace。分配

df.loc[:, ['Fruits','Veg','Non_veg']] = df.loc[:, ['Fruits','Veg','Non_veg']].ffill()

您应该删除inplace=True
df['Fruits','Veg','Non_veg'] = df['Fruits','Veg','Non_veg'].fillna(method= 'ffill')

使用:^{}。在这里您可以了解如何使用就地^{}

#df.replace('Nan',np.nan) #if NaN is string
cols=['Fruits','Veg','Non_veg']
df[cols]=df[cols].ffill()

相关问题 更多 >