【问题标题】:Error adding date column in Pandas在 Pandas 中添加日期列时出错
【发布时间】:2014-04-11 00:26:48
【问题描述】:

需要一些帮助来解决为什么我的数据框返回所有 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 天内增加 1 天。

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

【问题讨论】:

    标签: python pandas


    【解决方案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 未包含在原始数据帧的索引中。

    【讨论】:

      猜你喜欢
      • 2018-11-21
      • 1970-01-01
      • 1970-01-01
      • 2018-03-26
      • 2014-04-03
      • 2018-10-20
      • 1970-01-01
      • 2023-02-15
      相关资源
      最近更新 更多