在数据框中添加缺少的日期索引

时间:2016-01-09 09:29:08

标签: 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")

1 个答案:

答案 0 :(得分:7)

您必须在数据框架上设置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
...