3

使用从雅虎下载股票的数据后,get_data_yahoo我想访问每一行的时间......我该怎么做?

我想出的一种方法是:

it = stock.iterrows()
st0 = it.next()
resultIWant = st0[0].value # this gives what I want (almost)
print resultIWant

编辑:

所以基本上我想要一些类似的东西,stock['Open']但对于时间来说,smth likestock['Time']会是理想的..

有人要求输出.head

            Open  High   Low  Close  Volume  Adj Close
Date                                                  
2012-04-03  2.06  2.09  2.01   2.08  463200       2.08
2012-04-04  2.04  2.05  2.01   2.02  335600       2.02

函数的预期输出:

print find_time(stock,2) # function I'm looking for
1333497600000000000      # resulting output

预期的输出是数组中每个日期的最后一个纪元的时间或获取每个条目时间的其他方式。我给出的示例代码给了我想要的结果,但是如果我想访问第 4 个元素,唯一的方法就是访问.next迭代器 4 次,这似乎是一个不好的方法。

第一个问题:有没有更明显的方法,我正在做的似乎不是最好的方法。

第二个问题:结果是什么单位?我认为这是纳秒,但不确定......

4

4 回答 4

3

时间戳有一个time方法:

In [1]: t = pd.Timestamp('200101011300')

In [2]: t
Out[2]: <Timestamp: 2001-01-01 13:00:00>

In [3]: t.time()
Out[3]: datetime.time(13, 0)

value是自 1970 年 1 月 1 日午夜以来的纳秒,即unix 时间* 10 ** 9:

In [4]: t.value
Out[4]: 978354000000000000
于 2013-04-03T16:05:27.073 回答
2

刚看到问题。但可能对某人来说很有趣。

在这种情况下,您可以执行下一个命令:

stock['Time'] = stock.index 

然后你会得到新的列,'Time'因为你Date是索引。要将 DateTime 转换为 Unix Time 更改为:

将 numpy 导入为 np

股票['时间'] = stock.index.astype(np.int64)。

于 2020-06-19T13:37:58.070 回答
1

我最后在这里找到的正确答案

st.ix[index_val]您可以使用参考的第 5.2.8 节访问这些行。

ts = st.ix[2].Name

它返回一个时间戳

tsst[0]与问题中的相同

于 2013-04-13T16:51:38.597 回答
0

实际上每一行都包含一个包含索引和数据的元组,所以你可以这样做:

for index, row in stock.iterrows():
    print index
于 2013-04-03T16:37:29.723 回答