Pandas数据帧问题与日期不一致

时间:2016-02-18 22:07:01

标签: python python-2.7 pandas

如果没有显示正在发生的事情,很难解释。当我尝试从数据帧中提取最后一个值不带来的索引时,基本上会出现这种情况。

我正在为启动者使用pandas数据框。

我的第一个数据框是

daily_stock_values                
             SPY    AAPL
2011-01-05  123.83  332.57
2011-01-06  123.59  332.30
2011-01-07  123.35  334.68
2011-01-10  123.19  340.99
2011-01-11  123.63  340.18
2011-01-12  124.74  342.95
2011-01-13  124.54  344.20
2011-01-14  125.44  346.99
2011-01-18  125.65  339.19
2011-01-19  124.42  337.39
2011-01-20  124.26  331.26

当我运行print daily_stock_values

时,我明白了

所以我的下一步是只获得SPY值。对于这个例子,它没有区别,但我的代码是这个

daily_spy=daily_stock_values['SPY']
print daily_spy

结果是

    daily_spy  
2011-01-05    123.83
2011-01-06    123.59
2011-01-07    123.35
2011-01-10    123.19
2011-01-11    123.63
2011-01-12    124.74
2011-01-13    124.54
2011-01-14    125.44
2011-01-18    125.65
2011-01-19    124.42
2011-01-20    124.26

我的下一步是从daily_spy中提取日期,但无论出于何种原因,我都无法得到最后的日期。每当我提取索引值(即日期)时,它会提取除最后一个之外的所有内容。我已经尝试了两种方法来获取日期。

d = [i for i in daily_spy.index.values]
print "d ",d

[numpy.datetime64('2011-01-04T19:00:00.000000000-0500'), 
numpy.datetime64('2011-01-05T19:00:00.000000000-0500'), 
numpy.datetime64('2011-01-06T19:00:00.000000000-0500'), 
numpy.datetime64('2011-01-09T19:00:00.000000000-0500'), 
numpy.datetime64('2011-01-10T19:00:00.000000000-0500'), 
numpy.datetime64('2011-01-11T19:00:00.000000000-0500'), 
numpy.datetime64('2011-01-12T19:00:00.000000000-0500'), 
numpy.datetime64('2011-01-13T19:00:00.000000000-0500'), 
numpy.datetime64('2011-01-17T19:00:00.000000000-0500'), 
numpy.datetime64('2011-01-18T19:00:00.000000000-0500'), 
numpy.datetime64('2011-01-19T19:00:00.000000000-0500')]

我并不关心这里的格式,因为2011-01-20不在此列表中。

我也做了简单的for循环,它也没有显示它。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我最终找到了如何解决我的问题。通过Convert numpy.datetime64 to string object in python

基本上我转过来了

d = [i for i in daily_spy.index.values]

进入

d = [pd.to_datetime(str(i)) for i in daily_spy.index.get_values()]

然后从日期字符串中删除了我不需要的信息。谢谢你让我走上正确的道路!!