python - 在数据框中添加缺失日期索引

标签 python pandas dataframe

我加载了一个 CSV 文件,索引日期时间是一年中几个月的最后一天。我想用空值作为行来填充缺失的日期。

以下是我的CSV文件结构

Date    Australia   China
2011-01-31  4.75    5.81
2011-02-28  4.75    5.81
2011-03-31  4.75    6.06
2011-04-30  4.75    6.06

我想用空列填充一个月中的所有日期。

我尝试了以下代码,但它不起作用。

import pandas as pd
df = pd.read_csv("data.csv", index_col="Date")
df.reindex(pd.date_range("2011-01-01", "2011-10-31"), fill_value="NaN")

最佳答案

您必须在您的数据框上设置DatetimeIndex,因此我会将您的代码修改为:

import pandas as pd
df = pd.read_csv("data.csv", index_col="Date")
df.index = pd.DatetimeIndex(df.index)
df = df.reindex(pd.date_range("2011-01-01", "2011-10-31"), fill_value="NaN")
df.to_csv('test.csv')

这应该有效。

编辑:添加示例测试输出:

...
2011-01-24,NaN,NaN
2011-01-25,NaN,NaN
2011-01-26,NaN,NaN
2011-01-27,NaN,NaN
2011-01-28,NaN,NaN
2011-01-29,NaN,NaN
2011-01-30,NaN,NaN
2011-01-31,4.75,5.81
2011-02-01,NaN,NaN
2011-02-02,NaN,NaN
2011-02-03,NaN,NaN
2011-02-04,NaN,NaN
2011-02-05,NaN,NaN
2011-02-06,NaN,NaN
...

关于python - 在数据框中添加缺失日期索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34691812/

相关文章:

python - 检索 for 循环中赋予 StopIteration 的参数

python - 如何在 python 中通过 udp (DTLS) 套接字实现 http/3 协议(protocol)?

python - 查看以前的时间序列

python - 属性错误 : 'Sheet' object has no attribute 'write'

Python 将一小时添加到 time.time()

python - pandas:如何检查列值是否在同一行的其他列中

python - 旋转并重命名 Pandas 数据框

python - 如何选择值以 pandas 中的特定值开头和结尾的行?

python - 根据条件在 Pandas 系列中分配值?

r - 将 ids -> items 转换为 {pairs of ids} -> items