python - 用 0 填充缺失的日期(天)值
问题描述
我有一个数据框:
day Datavalue
2020-06-01 3.179695
2020-06-02 0.132487
2020-06-08 3.179695
2020-06-09 3.179695
2020-06-10 3.179695
我想设置一个日期范围并将任何不在数据框中的日期添加为 0 例如:
day Datavalue
2020-06-01 3.179695
2020-06-02 0.132487
2020-06-03 0
2020-06-04 0
2020-06-05 0
2020-06-06 0
2020-06-07 0
2020-06-08 3.179695
2020-06-09 3.179695
2020-06-10 3.179695
我努力了
mydates = pd.period_range(date - timedelta(40), date + timedelta(40)
x = data.set_index('day')
x = data.reindex(mydates, fill_value=0)
但这只是将其全部设置为零
我究竟做错了什么?
谢谢
解决方案
假设要对整个 DataFrame 执行此操作,请使用asfreq
:
df.set_index('day').asfreq('1D', fill_value=0)
Datavalue
day
2020-06-01 3.179695
2020-06-02 0.132487
2020-06-03 0.000000
2020-06-04 0.000000
2020-06-05 0.000000
2020-06-06 0.000000
2020-06-07 0.000000
2020-06-08 3.179695
2020-06-09 3.179695
2020-06-10 3.179695
推荐阅读
- mysql - 使用 MySql Workbench 从 Teradata 迁移到 MySQL 不起作用
- javascript - 当我再次尝试插入用户名密码时,错误消息不会消失
- php - 无法使用用户名登录:root,主机:
- asp.net-mvc - 带有区域的 MVC 项目中的默认路由
- ios - 如何在 iOS 中进行更安全的 SSL 固定?
- android - setCompoundDrawableWithIntrinsicBounds 没有绘制任何东西......但只是有时
- python - 如何在 Mac 上关闭或销毁 Tkinter 窗口
- vhdl - 如何在 VHDL 中的数据样本之间切换?
- c - 在c程序中裁剪BMP文件图像
- python - Python多维查找插值