你好,我有这个数据帧:
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。所以我用pandas库
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')
我得到了准确的日期。
我究竟做错了什么?
问题解决了。
功能
df.set_index('TimeStamp')
要实际更改它需要完成的数据帧,如:
df = df.set_index('TimeStamp')
要么
df.set_index('TimeStamp', inplace=True)
否则我们只是转换一个len