【问题标题】:Issue for converting a datetime format using pandas dataframe使用熊猫数据框转换日期时间格式的问题
【发布时间】:2021-12-30 20:45:36
【问题描述】:

我有一个包含date_time 列的数据集,格式如下:

date_time
01.01.2018 00:00 - 01.01.2018 00:15 (UTC)
01.01.2018 00:15 - 01.01.2018 00:30 (UTC)
01.01.2018 00:30 - 01.01.2018 00:45 (UTC)
01.01.2018 00:45 - 01.01.2018 01:00 (UTC)
.
.
.

通过使用 pandas 读取此数据集,我需要使用以下命令将 date_time 列从 object 类型转换为 datetime

df['date_time'] = pd.to_datetime(df['date_time'])

但是,我得到了这个错误

  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/dateutil/parser/_parser.py", line 643, in parse
    raise ParserError("Unknown string format: %s", timestr)
dateutil.parser._parser.ParserError: Unknown string format: 01.01.2018 00:00 - 01.01.2018 00:15 (UTC)

显然,pandas 不知道 date_time 原始格式。我该如何解决这个问题?

【问题讨论】:

    标签: python python-3.x pandas datetime


    【解决方案1】:

    首先,您拥有的是一个范围,而不是一个日期时间。

    首先将其拆分为开始和结束日期时间:

    df[['dt_start', 'dt_end']] = df['date_time'].str.split(' - ', expand = True)
    

    现在,开始日期时间转换没有问题(如果您想保持时区感知,请使用utc = True):

    df['dt_start'] = pd.to_datetime(df['dt_start'], utc = True)
    

    结束日期时间需要一点帮助来手动输入格式,因为默认参数的 to_datetime 解析器无法识别 (UTC) 戳记:

    df['dt_end'] = pd.to_datetime(df['dt_end'], format = '%d.%m.%Y %H:%M (UTC)', utc = True)
    

    【讨论】:

      猜你喜欢
      • 2018-10-25
      • 2020-11-12
      • 2018-12-07
      • 2019-09-12
      • 2021-02-17
      • 2015-03-25
      • 2018-07-13
      • 2020-03-30
      • 2021-10-30
      相关资源
      最近更新 更多