繁体   English   中英

使用带有时间戳的pandas to_datetime

[英]Using pandas to_datetime with timestamps

我试图将这些时间戳转换为%Y-%m-%d %H:%M格式。 这是一个数据样本:

0    1450753200
1    1450756800
2    1450760400
3    1450764000
4    1450767600
Name: ohlcv_start_date, dtype: int64

有人可以解释这些类型的时间戳以及我需要哪些代码来正确转换它们,因为当我使用时:

pd.to_datetime(df[TS], unit='ms').dt.strftime('%Y-%m-%d %H:%M')

它将时间转换为:

0        1970-01-01 00:00
1        1970-01-01 00:00
2        1970-01-01 00:00
3        1970-01-01 00:00
4        1970-01-01 00:00

哪个不对

编辑:谢谢Chum先生。

我实际上要做的是按时间戳合并不同资产的值。 每个资产在稍微不同的时间开始和结束,经过分析,数据似乎存在差距:

 market_trading_pair  next_future_timestep_return ohlcv_start_date  \
0        Poloniex_ETH_BTC                 3.013303e-03    2015-12-22 03      
1        Poloniex_ETH_BTC                 3.171481e-03    2015-12-22 05   
2        Poloniex_ETH_BTC                -1.381575e-03    2015-12-22 07   
3        Poloniex_ETH_BTC                -4.327704e-03    2015-12-22 08   

我能想到解决这个问题的最好方法是创建一个新的数据框,并用时间戳增加一个小时来填充行,从这里我可以简单地合并资产数据。 知道如何生成升序timstamps吗?

传递unit='s'以获取值作为其纪元时间

In [106]:
pd.to_datetime(df['timestamp'], unit='s')
Out[106]:
index
0   2015-12-22 03:00:00
1   2015-12-22 04:00:00
2   2015-12-22 05:00:00
3   2015-12-22 06:00:00
4   2015-12-22 07:00:00
Name: timestamp, dtype: datetime64[ns]

如果您愿意,可以转换为字符串:

In [107]:

pd.to_datetime(df['timestamp'], unit='s').dt.strftime('%Y-%m-%d %H:%M')
Out[107]:
index
0    2015-12-22 03:00
1    2015-12-22 04:00
2    2015-12-22 05:00
3    2015-12-22 06:00
4    2015-12-22 07:00
Name: timestamp, dtype: object

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM