【问题标题】:pd.to_datetime() with spanish locale systempd.to_datetime() 与西班牙语言环境系统
【发布时间】:2021-01-27 21:27:21
【问题描述】:
d1 = today.strftime("%b-%y")
print("d1 =", d1)

d1 = ene.-21

但我想在我的数据集中转换的变量是 Jan-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 pandas date string-to-datetime


    【解决方案1】:

    编辑:作者在下面的 cmets 中指出问题是由于他们的 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 数据框中的单元格值,而不是我刚刚在上面输入的值。

    编辑 2:有关该问题的更多详细信息,来自 cmets,对 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. 点安装日期时间
    3. pip install datetime --upgrade

    【讨论】:

    • 你好,保罗。感谢您的回复。 d1 是向您展示我的 IDE 如何识别“今天”日期的示例,确实是西班牙语。而我要转换的字符串是英文的。
    • 嗨,卡洛斯。您能否以您正在使用的格式提供一些示例数据?谢谢。
    • 日期 = [“Jan-85”、“Jan-93”、“Jan-00”]
    • 它对我来说绝对没问题。您必须在做您不知道或未在此处说明的其他事情。除非您共享整个代码,否则很抱歉,我认为没有人可以提供帮助。这是我尝试过的,效果很好。 df = pd.DataFrame(data={'a':["Jan-85", "Jan-93", "Jan-00"]}) df['a'] = pd.to_datetime(df['a'], format='%b-%y') 编辑:确保您的日期时间库是最新的。在终端中运行 pip install datetime 然后 pip install datetime --upgrade 来执行此操作。然后再试一次。这是我最后一次尝试提供帮助,我想不出别的了..
    • 嗨,保罗。我正在使用 Rstudio,python 环境是用 python 3.8 创建的,并且日期时间(包anaconda.org/trentonoliphant/datetime)更新到 3.4。我将创建另一个环境。用 3.4 看看它是否有效。
    猜你喜欢
    • 1970-01-01
    • 2012-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-05
    相关资源
    最近更新 更多