【问题标题】:Parsing pandas DateTime where there are different timezones in dataframe解析数据框中有不同时区的熊猫日期时间
【发布时间】:2022-01-10 06:22:16
【问题描述】:

我正在尝试将 .csv 文件解析为数据框。 csv 有多个时区,因为在数据记录期间发生了夏令时(在 +01:00 其他时区在 +02:00)。这是一个用于理解的sn-p:

读入 csv 文件后,我的代码设置如下:

df_vitals.Date_time = pd.to_datetime(df_vitals.Date_time, format ='%Y-%m-%d %H:%M:%S%z')
df_vitals.Date_time = df_vitals.Date_time.dt.tz_convert("Europe/Madrid")

Date_time 是我的包含混合时区的列。我收到以下错误:

AttributeError: Can only use .dt accessor with datetimelike values

请注意,这对于我只有一个时区(即没有夏令时)的 csv 文件非常有效

如何正确解析包含多个时区的 csv 文件?

【问题讨论】:

  • 您的输入有多个 UTC 偏移量(准确地说,不是时区)。但是,熊猫日期时间类型的熊猫系列只能处理一个 UTC 偏移量或一个特定时区。这就是为什么 pd.to_datetime 在这里返回一个 pd.Series 的 Python 日期时间对象(不是 pandas 日期时间)——这不允许使用 dt 访问器。
  • 很好地解释了为什么这样做@MrFuppes - 谢谢

标签: python pandas dataframe datetime timezone


【解决方案1】:

不使用format,而是设置to_datetimeutc 参数:

utc(布尔值):如果 True(也转换任何 tz 感知的 datetime.datetime 对象),则返回 UTC DatetimeIndex

df_vitals.Date_time = pd.to_datetime(df_vitals.Date_time, utc=True)

【讨论】:

    猜你喜欢
    • 2015-07-25
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2019-06-24
    • 2020-10-19
    • 2018-02-02
    • 1970-01-01
    • 2021-03-19
    相关资源
    最近更新 更多