【问题标题】:Using pandas.tseries.offsets.DateOffset with dataframe as input使用带有数据框的 pandas.tseries.offsets.DateOffset 作为输入
【发布时间】:2021-06-08 18:50:57
【问题描述】:

我有一个带有以下格式的日期和时间的输入熊猫数据框。我从 SQL 服务器得到这个。我认为是从 1900/01/01 开始的天数

date start_time end_time
44084 44085.125002 44085.128478
44085 44086.125003 44086.128923
44086 44087.125008 44087.127888

我发现我可以使用以下代码将其中一个值转换为日期时间。

对于时间字段,

pd.datetime(1900,1,1) + pd.DateOffset(seconds=round(44085.128478 * 24*60*60))

对于日期字段,

pd.datetime(1900,1,1) + pd.DateOffset(44084)

如何将其应用于偏移数据框以产生类似的东西?

date start_time end_time
2020-09-12 00:00:00 2020-09-13 03:00:00 2020-09-13 03:05:00
2020-09-13 00:00:00 2020-09-14 03:00:00 2020-09-14 03:05:39
2020-09-14 00:00:00 2020-09-15 03:00:01 2020-09-15 03:04:10

当我使用 read_sql 函数本身时,可能会有一个选项来转换它。我试过 parse_dates ,它对我不起作用。

【问题讨论】:

    标签: python pandas dataframe datetime


    【解决方案1】:

    你可以试试to_timedelta:

    df.apply(pd.to_timedelta, unit='D') + pd.Timestamp('1900-01-01')
    

    输出:

            date                 start_time                   end_time
    0 2020-09-12 2020-09-13 03:00:00.172800 2020-09-13 03:05:00.499200
    1 2020-09-13 2020-09-14 03:00:00.259200 2020-09-14 03:05:38.947200
    2 2020-09-14 2020-09-15 03:00:00.691200 2020-09-15 03:04:09.523200
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      相关资源
      最近更新 更多