Datetime unix到ISO

2024-03-29 09:31:24 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我有这个数据帧:

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

我得到了准确的日期。你知道吗

我做错什么了?你知道吗


Tags: to数据dfclosedatetimeindex时间unit
1条回答
网友
1楼 · 发布于 2024-03-29 09:31:24

问题解决了。你知道吗

函数

df.set_index('TimeStamp')

要实际更改数据帧,需要执行以下操作:

df = df.set_index('TimeStamp') 

或者

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

否则我们只是转换一个len

相关问题 更多 >