【问题标题】:Using pandas to_datetime with timestamps使用带有时间戳的 pandas to_datetime
【发布时间】:2016-02-10 20:21:44
【问题描述】:

我正在尝试将这些时间戳转换为%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   

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

【问题讨论】:

    标签: python datetime pandas


    【解决方案1】:

    传递unit='s' 以获得epoch time 的值:

    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
    

    【讨论】:

    • EdChum 再次做到了!
    • @EdChum 对于奖励积分,我们如何用日期填充空白数据框列,以一小时为增量,从 t1 开始,到 t2 结束。
    • 如果您有新问题,那么您应该发布一个新问题,除此之外应该可以:pd.date_range(start=t1, end=t2, freq='H')
    • 哇,非常简单,我试图搜索类似的东西,但我不断收到“如何转换 timstamp”的帖子。你能建议一种方法来寻找这样的功能吗?还是你只需要熟悉熊猫
    • 谢谢!有时它是'ms' 毫秒,具体取决于您的数据。
    猜你喜欢
    • 2021-04-30
    • 1970-01-01
    • 2018-03-19
    • 2019-11-20
    • 1970-01-01
    • 2019-01-28
    • 2018-04-22
    • 1970-01-01
    相关资源
    最近更新 更多