繁体   English   中英

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

[英]How to fill Nan values for multiple columns at once?

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

用途: DataFrame.ffill 。在这里,你可以SE如何使用就地How to use inplace=True

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

不要在切片对象上使用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')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM