3

を使用して yahoo から株式のデータをダウンロードしたget_data_yahoo後、各行の時間にアクセスしたいのですが...どうすればよいですか?

これを行うために私が考え出した1つの方法は次のとおりです。

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回アクセスすることであり、これは悪い方法のようです.

最初の質問: もっと分かりやすい方法はありますか?

2 番目の質問: 結果の単位は? ナノ秒だと思いますが、よくわかりません...

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 日の午前 0 時からのナノ秒数です。つまり、 UNIX 時間* 10 ** 9:

In [4]: t.value
Out[4]: 978354000000000000
于 2013-04-03T16:05:27.073 に答える
1

ここで最後に見つけた正解

st.ix[index_val]リファレンスのセクション 5.2.8 を使用して行にアクセスできます。

ts = st.ix[2].名前

タイムスタンプを返す

tsst[0]質問と同じです

于 2013-04-13T16:51:38.597 に答える
0

実際、各行にはインデックスとデータを含むタプルが含まれているため、次のようにすることができます。

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