首页 > 解决方案 > 如何在熊猫中用以前的数字替换空白值

问题描述

SS     RR
       10.4
12.6  
 
       5.6
8.7

我想用前面的值填充空白行。

预期结果:

SS     RR
       10.4
12.6   10.4
12.6   10.4      
12.6   5.6
8.7    5.6
8.7    5.6

我试图先用 NaN 替换空白值,然后迭代前面的值:

df[df['SS']==""] = np.NaN
df[df['RR']==""] = np.NaN

df.SS.fillna(method='ffill')
df.RR.fillna(method='ffill')

但由于某种原因,它对数据框没有任何影响。我在这里想念什么?谢谢!

编辑:如果我想ffill在各自的“ID”内怎么办:

ID     SS     RR
ABC          10.4
ABC   12.6  
ABC     
LMN           5.6
LMN   8.7

预期结果:

ID     SS     RR
ABC          10.4
ABC   12.6   10.4
ABC   12.6   10.4
LMN           5.6
LMN   8.7     5.6

我是否使用该groupby功能以及在何处添加它以使事情正常进行?再次感谢!

标签: pythonpython-3.xpandasnumpydataframe

解决方案


您应该将其分配回或添加inplace

df.SS.fillna(method='ffill',inplace=True)
df.RR.fillna(method='ffill',inplace=True)

#df.SS = df.SS.fillna(method='ffill')
#df.RR = df.RR.fillna(method='ffill')

推荐阅读