【问题标题】:python/pandas - converting date and hour integers to datetimepython/pandas - 将日期和小时整数转换为日期时间
【发布时间】:2017-10-06 00:57:05
【问题描述】:

我有一个包含日期列和小时列的数据框。

     DATE         HOUR
  2015-1-1         1
  2015-1-1         2
      .            .
      .            .
      .            .
  2015-1-1         24

我想将这些列转换为日期时间格式,例如: 2015-12-26 01:00:00

【问题讨论】:

  • 我不确定这是否有用,因为您使用的是数据框,如果读取 csv,您可以使用:datetime.datetime.strptime("2015-1-1 01", " %Y-%m-%d %H") 您可以将日期和小时组合为字符串
  • @okkhoy 我也会尝试一下。底层源来自 csv,所以也许在创建最终数据框之前我可以格式化 csv。谢谢!

标签: python datetime pandas


【解决方案1】:

您可以先将df.DATE 转换为日期时间列,然后通过timedelta64[h] 添加df.HOUR delta

In [10]: df
Out[10]:
       DATE  HOUR
0  2015-1-1     1
1  2015-1-1     2
2  2015-1-1    24

In [11]: pd.to_datetime(df.DATE) + df.HOUR.astype('timedelta64[h]')
Out[11]:
0   2015-01-01 01:00:00
1   2015-01-01 02:00:00
2   2015-01-02 00:00:00
dtype: datetime64[ns]

或者,使用pd.to_timedelta

In [12]: pd.to_datetime(df.DATE) + pd.to_timedelta(df.HOUR, unit='h')
Out[12]:
0   2015-01-01 01:00:00
1   2015-01-01 02:00:00
2   2015-01-02 00:00:00
dtype: datetime64[ns]

【讨论】:

    猜你喜欢
    • 2016-01-27
    • 1970-01-01
    • 2019-06-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多