日期时间unix到ISO熊猫

问题描述 投票:0回答:1

你好,我有这个数据帧:

    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')

我得到了准确的日期。

我究竟做错了什么?

python pandas datetime dataframe data-analysis
1个回答
0
投票

问题解决了。

功能

df.set_index('TimeStamp')

要实际更改它需要完成的数据帧,如:

df = df.set_index('TimeStamp') 

要么

df.set_index('TimeStamp', inplace=True)

否则我们只是转换一个len

© www.soinside.com 2019 - 2024. All rights reserved.