【问题标题】:Problems with UTC datetime - how to fit a colon - time data '2021-03-11 09:30:01-05:00' does not match format '%Y%m%d %H:%M:%S %z'UTC 日期时间问题 - 如何适合冒号 - 时间数据 '2021-03-11 09:30:01-05:00' 与格式 '%Y%m%d %H:%M:%S %z 不匹配'
【发布时间】:2021-03-16 03:24:27
【问题描述】:

我正在尝试使用以下代码将字符串 '2021-03-11 09:30:01-05:00' 转换为日期时间。

看来我的字符串是介于 05 和 00 之间的冒号 (:),而且这个冒号不是默认的 %z 日期格式。

如何将我的字符串转换为 EST 日期时间?

df = pd.read_csv(mypath + "ticks.csv")
df['time'] = pd.to_datetime(df['time'], format="'%Y-%m-%d %H:%M:%S%z'")
df['time'] = df['time'].dt.tz_localize('US/Eastern')

【问题讨论】:

  • 格式字符串周围有两组引号。改用:format='%Y-%m-%d %H:%M:%S%z')
  • 感谢工作,但运行 df['time'] = df['time'].dt.tz_localize('US /东')。有什么想法吗?
  • 我没有得到那个错误只是用那个示例字符串。我想知道 CSV 文件中是否可能存在一些类似于日期时间的值...
  • 我不明白,即使我使用:df['time'] = pd.to_datetime(df['time'], format='%Y-%m-%d %H :%M:%S%z', errors='coerce') 我收到错误 Can only use .dt accessor with datetimelike values...我可以将我的 CSV 文件上传到某个地方吗?
  • 你能看看这里的文件吗:file.io/Q9u8XRBpKH25

标签: python datetime


【解决方案1】:

您尝试的以下细微变化对我来说效果很好。

df = pd.read_csv('testfile.csv')

df['time'] = pd.to_datetime(df['time'], utc=True)
df['time'] = df['time'].dt.tz_convert('US/Eastern')

结果:

In [115]: df['time']
Out[115]: 
0       2021-03-11 09:30:01-05:00
1       2021-03-11 09:30:02-05:00
2       2021-03-11 09:30:14-05:00
3       2021-03-11 09:30:14-05:00
4       2021-03-11 09:30:14-05:00
                   ...           
35518   2021-03-15 15:59:53-04:00
35519   2021-03-15 15:59:54-04:00
35520   2021-03-15 15:59:56-04:00
35521   2021-03-15 15:59:56-04:00
35522   2021-03-15 15:59:57-04:00
Name: time, Length: 35523, dtype: datetime64[ns, US/Eastern]

【讨论】:

  • 非常感谢您的工作...您介意看一下这篇文章吗:stackoverflow.com/questions/66619902/…...您可以使用相同的文件,,我遇到了 matplotlib 问题。 . 我给你买杯咖啡;)
猜你喜欢
  • 1970-01-01
  • 2018-12-30
  • 1970-01-01
  • 2022-07-29
  • 1970-01-01
  • 1970-01-01
  • 2016-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多