【问题标题】:Change date format with pandas使用 pandas 更改日期格式
【发布时间】:2020-02-08 17:56:45
【问题描述】:

我有一个数据框,其中包含一个名为“Fecha”的列“对象类型”,我想将其转换为 DateTime 类型。 但是,熊猫无法识别该格式,因为它是某种西班牙语格式(即:'1 abr, 2019')。我应该怎么做才能更改为 dd/mm/yyyy 等标准格式?

Abr 对应于 Abril,英文是 April。

我尝试过使用 pd.to_datetime() 和 strftime 方法,但 pandas 无法识别格式。

ValueError: ('Unknown string format:', '1 abr. 2019')

提前问候和感谢

【问题讨论】:

  • 您尝试过语言环境吗? ` 导入语言环境 ` locale.setlocale(locale.LC_ALL,'es_ES.UTF-8') from datetime import datetime as dt print(dt.strptime('martes 12 julio 2016', '%A %d %B %Y'))
  • 除非绝对必要,否则请不要将信息共享为图像。请参阅:meta.stackoverflow.com/questions/303812/…minimal reproducible example 在哪里?

标签: python pandas date


【解决方案1】:

如果您将语言环境设置为es_ES,您可以使用pd.to_datetime 和来自here 的适当格式代码将字符串系列转换为日期时间。

在这种情况下,格式代码是 %d %b %Y(嗯,不完全是因为日期不是零填充的,但 pd.to_datetime 似乎并不关心)。

import locale
locale.setlocale(locale.LC_TIME, locale='es_ES')

df['Fecha'] = pd.to_datetime(df['Fecha'], format='%d %b %Y')

【讨论】:

  • 似乎它适用于某些行但不是所有行。 ValueError: time data '3 sept. 2019' does not match format '%d %b %Y' (match)
  • 将九月缩写为“sept.”的西班牙语言环境分别是:es-CLes-COes-PYes-VE。用其中任何一个替换语言环境代码,它应该可以工作。
猜你喜欢
  • 1970-01-01
  • 2020-04-16
  • 2015-07-19
  • 2018-03-21
  • 2019-05-01
  • 2012-11-04
  • 2016-04-16
  • 2014-05-07
相关资源
最近更新 更多