python - Pandas:用列中的下一个非零值替换第一行中的所有 0?
问题描述
我有一个如下的csv:
我想用该列中的下一个非 0 值替换第一行中的任何 0 - 例如。在上面的 'momentum_ao' 的第一行应该更改为 0.1439166667,'others_dlr' 列的第一行应该是 0.9153612171 等(第二行及以下将保持不变)。这应该如何在熊猫中完成?这个 csv 有几十列,所以我想要一个不涉及手动输入和逐一遍历列的解决方案。
解决方案
这应该可以完成工作。只需用np.nan
值填充零,回填,然后取第一行并将其重新分配给原始数据帧。
df.iloc[0, :] = df.replace(0, np.nan).bfill().iloc[0, :]
推荐阅读
- javascript - Javascript 使用 Uint8Array 获取 Blob
- ios - Xcode 12 更新“AFNetworking”命令 PhaseScriptExecution 失败,退出代码为非零
- reactjs - Material ui TableContext 返回“未定义”
- centos - 本地 3000 端口不可用(CentOS ,browser-sync, VSCode Remote SSH)
- python - 如何将逗号分隔的对象导出到 .csv 文件中
- mips - MIPS中的lhu和lbu有什么区别?
- html - [Python]Robot Framework中的Selenium关键字点击标签内的span role="button"
- python - 设置聊天机器人
- python-3.x - Odoo 14 Longpolling Bus.bus 错误 - Apache2
- python - 如何使用 discord.py 使用命令创建列表?