首页 > 解决方案 > 如何用熊猫中前一列的前一行单元格填充一列的一些空单元格?

问题描述

我正在尝试用相应的前一行单元格填充一列的一些空行单元格。但是我没有得到正确的解决方案:

df = pd.DataFrame({'A':[1, 2, 3, 4, 5], 'B':[6, 7, '', '', 10]}) 

df.replace('', np.nan) 

df.fillna(method='ffill')

结果仍然是空的。我想用 A 列中的 3 和 4 填充 B 列的空单元格

标签: pythonpandas

解决方案


df.ffill与 一起使用axis=1

In [2466]: df = df.replace('', np.nan).ffill(axis=1)

In [2451]: df
Out[2451]: 
   A     B
0  1   6.0
1  2   7.0
2  3   3.0
3  4   4.0

或者:

使用Series.combine_first

In [2441]: df = df.replace('', np.nan)

In [2450]: df['B'] = df['B'].combine_first(df['A'])

或使用Series.fillna

In [2441]: df = df.replace('', np.nan)

In [2457]: df['B'] = df['B'].fillna(df['A'])

推荐阅读