在Pandas中添加日期列时出错

时间:2014-04-11 00:26:49

标签: python pandas

需要一些帮助来解决我的数据帧返回所有NaN的原因。

print df
   0  1  2  3   4
0  1  9  0  7  30
1  2  8  0  4  30
2  3  5  0  3  30
3  4  3  0  3  30
4  5  1  0  3  30

然后我添加了日期索引。我只需要增加一天,持续5天。

date = pd.date_range(datetime.datetime.today(), periods=5)
data = DataFrame(df, index=date)
print data

                             0   1   2   3   4
2014-04-10 17:16:09.433000 NaN NaN NaN NaN NaN
2014-04-11 17:16:09.433000 NaN NaN NaN NaN NaN
2014-04-12 17:16:09.433000 NaN NaN NaN NaN NaN
2014-04-13 17:16:09.433000 NaN NaN NaN NaN NaN
2014-04-14 17:16:09.433000 NaN NaN NaN NaN NaN

尝试了几件不同的事情但无济于事。如果我将原始数据帧切换到

 np.random.randn(5,5)

然后它有效。任何人都知道这里发生了什么?

编辑:要添加数据类型为float64

print df.dtypes

0    float64
1    float64
2    float64
3    float64
4    float64
dtype: object

1 个答案:

答案 0 :(得分:1)

您应该使用以下内容覆盖原始数据框的索引:

df.index = date

DataFrame(df, index=date)所做的是通过将index的值与正在使用的df相匹配来创建新数据框,例如:

DataFrame(df, index=[0,1,2,5,5])

返回以下内容:

    0   1   2   3   4
0   1   9   0   7  30
1   2   8   0   4  30
2   3   5   0   3  30
5 NaN NaN NaN NaN NaN
5 NaN NaN NaN NaN NaN

因为5未包含在原始数据框的索引中。