python - 如何用熊猫中前一列的前一行单元格填充一列的一些空单元格?
问题描述
我正在尝试用相应的前一行单元格填充一列的一些空行单元格。但是我没有得到正确的解决方案:
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 列的空单元格
解决方案
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
或者:
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'])
推荐阅读
- shell - 如何在 Elvish shell 中打印提示内容以进行测试?
- c# - 如何使用 ASP.NET MVC 5 在 EF 中实现多对多关系
- r - 断开连接图的巨型组件本身断开连接的警告消息
- node.js - Node.js 集群模块 - 多处理还是并行处理?
- spring-batch - 如果记录存在,则春季批处理示例检查更新,否则插入
- javascript - 如何将来自 for 循环的单独 json 对象输出连接到数组中?
- python - 使用另一个列表从数据框列表中添加数据框
- photoshop - 如何在后期效果中绘制黑色蒙版?
- ffmpeg - 如何使用 FFmpeg 标记元数据 m4v 文件
- python - 旋转游戏蒙特卡罗