python - Pandas 在枢轴操作后用零替换 NaN 值
问题描述
我有一个这样的数据框:
Year Month Day Rain (mm)
2021 1 1 15
2021 1 2 NaN
2021 1 3 12
依此类推(有多年)。我已经使用pivot_table
函数将 DataFrame 转换为:
Year 2021 2020 2019 2018 2017
Month Day
1 1 15
2 NaN
3 12
我用了:
df = df.pivot_table(index=['Month', 'Day'], columns='Year',
values='Rain (mm)', aggfunc='first')
现在我想用每列中的零替换所有NaN
值和可能的-1
值(我的意思是几年),但我无法这样做。我努力了:
df = df.fillna(0)
并且:
df.loc[df['Rain (mm)'] == NaN, 'Rain (mm)'] = 0
但两者都不起作用,没有错误消息/异常,数据框保持不变。我做错了什么?任何建议都受到高度赞赏。
解决方案
我认为问题是NaN
字符串,所以不能替换它们,所以首先尝试将值转换为数字:
df['Rain (mm)'] = pd.to_numeric(df['Rain (mm)'], errors='coerce')
df = df.pivot_table(index=['Month', 'Day'], columns='Year',
values='Rain (mm)', aggfunc='first').fillna(0)
推荐阅读
- c - 在哪里以及如何替换 ProFTPD 项目的服务器代码?
- excel - 在excel插件中按范围生成图片
- azure - Azure 通信服务 (ACS) 呼叫库是否限制视频/语音呼叫的长度?
- firebase - 如何在 Firebase 事务中创建用户并附加新声明
- python - 如何比较具有相同键的两个字典并使用python中的条件更新值?
- git - IntelliJ-Git:为什么我来自一个分支的课程显示在另一个分支的结帐中?
- tensorflow - 如何在 Keras 模型中为新的仅推理端到端模型进行预处理
- ios - 在 Stackview (Swift) 中缩小按钮字体大小
- python - Pandas Groupby Ratio怎么做?
- javascript - 从包含特殊字符的字符串中提取数字