0
你好,我有這樣的數據幀:日期時間Unix向ISO大熊貓
TimeStamp low high open close volume
0 1514331900 15699.54 15800.00 15699.55 15790.88 62.675508
1 1514331000 15651.57 15745.80 15662.01 15699.54 83.040542
2 1514330100 15661.00 15820.01 15820.01 15662.00 67.716571
3 1514329200 15780.00 15856.00 15780.01 15820.00 41.608696
4 1514328300 15780.00 15867.01 15789.98 15780.00 50.103055
5 1514327400 15719.00 15856.99 15856.99 15789.99 120.660673
我設置時間戳指數
df.set_index('TimeStamp')
我得到
low high open close volume
TimeStamp
1514331900 15699.54 15800.00 15699.55 15790.88 62.675508
1514331000 15651.57 15745.80 15662.01 15699.54 83.040542
1514330100 15661.00 15820.01 15820.01 15662.00 67.716571
1514329200 15780.00 15856.00 15780.01 15820.00 41.608696
1514328300 15780.00 15867.01 15789.98 15780.00 50.103055
現在我想的時間戳轉換爲ISO可讀的DateTime。 所以我用熊貓庫
df.index = pd.to_datetime(df.index, unit='s')
但我沒有得到預期的日期時間,我得到這個:
TimeStamp low high open close \
1970-01-01 00:00:00 1514331900 15699.54 15800.00 15699.55 15790.88
1970-01-01 00:00:01 1514331000 15651.57 15745.80 15662.01 15699.54
1970-01-01 00:00:02 1514330100 15661.00 15820.01 15820.01 15662.00
1970-01-01 00:00:03 1514329200 15780.00 15856.00 15780.01 15820.00
1970-01-01 00:00:04 1514328300 15780.00 15867.01 15789.98 15780.00
這不是正確的形式,因爲如果我這樣做:
>>> pd.to_datetime(1514331900, unit='s')
Timestamp('2017-12-26 23:45:00')
我得到準確的日期。
我在做什麼錯?
我不能d重複你的問題。你使用的是什麼版本的熊貓? –
0.21.1 它適合你嗎? – hopieman
這是一個'inplace'與'copy'問題。您需要將'df.set_index('TimeStamp')'分配給'df'。基本上,'df = df.set_index('TimeStamp')'或使用'inplace':'df.set_index('TimeStamp',inplace = True)''。否則,你將'range(len(df))'轉換爲datetime對象。 – Abdou