如果不显示正在发生的事情,很难解释。基本上,当我尝试从数据帧中提取索引时,最后一个值不会随之而来。
我正在使用熊猫数据帧作为初学者。
我的第一个数据框是
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 循环,它也没有显示它。知道为什么吗?
我最终找到了解决我的问题的方法。 通过 将 numpy.datetime64 转换为 python 中的字符串对象
基本上我转过身来
d = [i for i in daily_spy.index.values]
到
d = [pd.to_datetime(str(i)) for i in daily_spy.index.get_values()]
然后从日期字符串中删除了我不需要的信息。谢谢你让我走上了正确的道路!!