【问题标题】:Pandas Single Timestamp with index of offsets带有偏移量索引的 Pandas 单一时间戳
【发布时间】:2016-03-14 17:10:11
【问题描述】:

这可能是一个简单的答案,但我在 Pandas v0.17.1 文档中没有看到它。

我有一组数据,其中包含标题中的开始时间,然后对于每一行数据都有以毫秒为单位的偏移量。

   Time  Input A
0     0   3.3337
1   500   3.3096
2  1001   3.3044
3  1501   3.3630
4  2004   3.2822
5  2504   3.3335

我想用实际时间替换“时间”偏移列。

这是我从数据文件 (.xls) 中获取的内容:

>>> pd.to_datetime('Tue Mar 08 11:20:40 EST 2016')
Timestamp('2016-03-08 11:20:40')

我确实尝试过使用以下内容:

>>> pd.to_datetime(df['Time'], unit='ms')
0       1970-01-01 00:00:00.000
1       1970-01-01 00:00:00.500
2       1970-01-01 00:00:01.001
3       1970-01-01 00:00:01.501
4       1970-01-01 00:00:02.004

当然,开始日期是错误的。我没有看到任何让我选择开始日期时间的地方。

【问题讨论】:

    标签: python datetime pandas datetimeoffset


    【解决方案1】:

    我想你可以applypd.offsets.Milli 和日期时间d

    print df
       Time  Input A
    0     0   3.3337
    1   500   3.3096
    2  1001   3.3044
    3  1501   3.3630
    4  2004   3.2822
    5  2504   3.3335
    
    d = pd.to_datetime('Tue Mar 08 11:20:40 EST 2016')
    print d
    2016-03-08 11:20:40
    
    print df['Time'].apply(lambda x: pd.offsets.Milli(x) + d )
    0   2016-03-08 11:20:40.000
    1   2016-03-08 11:20:40.500
    2   2016-03-08 11:20:41.001
    3   2016-03-08 11:20:41.501
    4   2016-03-08 11:20:42.004
    5   2016-03-08 11:20:42.504
    Name: Time, dtype: datetime64[ns]
    

    【讨论】:

    • 完美!我应该很久以前就开始学习熊猫了。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 2012-08-25
    • 2021-07-17
    • 2018-03-04
    • 2019-06-25
    • 1970-01-01
    相关资源
    最近更新 更多