pd.to_datetime() 与西班牙语言环境系统 编辑:作者在下面的评论中指出该问题是由于他们的 Python/R 环境造成的编辑 2:有关该问题的更多详细信息,来自对 OP 有帮助的评论还有

问题描述

d1 = today.strftime("%b-%y")
print("d1 =",d1)

d1 = ene.-21

但我想在我的数据集中转换的变量是 1 月 21 日。

我的代码

data['date_text_DATE'] = pd.to_datetime(data['date_text'],format = '%b-%y')

我得到的错误

ValueError: time data 'Jan-21' does not match format '%b-%y' (match)

它不会将文本转换为日期格式。

解决方法

编辑:作者在下面的评论中指出该问题是由于他们的 Python/R 环境造成的。

我不确定您想用 d1 变量完成什么,但我创建的示例对我来说效果很好。

我怀疑您的列中有一个不符合日期模式的值。你能分享整个数据集或那一列吗

这就是我所做的。

df = pd.DataFrame(data={'a':'Jan-21'},index=[0])
pd.to_datetime(df['a'],format='%b-%y')

而且效果很好。

您可能想检查您的编码没有做一些奇怪的事情,也许是西里尔字母或其他东西。以下应返回 425sum([ord(l) for l in 'Jan-21'])

其中 'Jan-21' 应该是 Pandas Dataframe 中的单元格值,显然不是我刚刚在上面输入的值。

编辑 2:有关该问题的更多详细信息,来自对 OP 有帮助的评论。

df['a'].dt.strftime(date_format='%b-%Y') 会将格式为 mmm-yy 的任何值转换为日期时间。所有的 pandas 系列都有一个 .dt 访问器,它为您提供了很多与 datetime 相关的功能,例如能够返回 .weekofyear 或 .second,而 .strftime(字符串格式时间)是一个非常通用 Python 方法,它允许使用您需要的格式样式对日期时间进行字符串格式化。您可以更改正斜杠等的破折号。您可以在此链接中查看所有格式选项:https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes

有关 .dt 访问器的更多信息:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.dt.strftime.html

还有

如果您收到 datetime 错误,并且似乎绝对确定您正在做正确的事情(例如 Edit 2 中给出的示例),请按照以下顺序重新安装和升级您的 datetime 模块:

  1. pip 卸载日期时间
  2. pip 安装日期时间
  3. pip install datetime --upgrade

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...