【问题标题】:Convert spanish date into a pandas datetime object [duplicate]将西班牙日期转换为熊猫日期时间对象[重复]
【发布时间】:2021-12-16 06:29:05
【问题描述】:

我想将此 df 从对象转换为日期时间对象,“ABR”是“APR”的西班牙语

Initial date final date
30 ABR 21 31 MAY 21
30 JUN 21 31 JUL 21

我的代码:

import locale
locale.setlocale(locale.LC_TIME, '')
a["Fecha Inicial"].apply(lambda x: dt.strptime(x, "%d %b %y"))

值错误

ValueError: time data '30 ABR 21' does not match format '%d %b %y'

【问题讨论】:

标签: python datetime


【解决方案1】:

这可以解决你的问题

import pandas as pd
import datetime as dt

a = pd.DataFrame({"Fecha Inicial": ['30 ABR 21', '30 JUN 21']})

mapping_dict = {'ENERO':'JAN',
'FEB':'FEB',
'MARZO':'MAR',
'ABR':'APR',
'MAYO':'MAY',
'JUN':'JUN',
'JUL':'JUL',
'AGOSTO':'AUG',
'SEPT':'SEP',
'OCT':'OCT',
'NOV':'NOV',
'DIC':'DEC'
                }

a["Fecha Inicial"].apply(lambda x: dt.datetime.strptime(x.replace(x.split(' ')[1],mapping_dict[x.split(' ')[1]].capitalize()), "%d %b %y"))

locale 存在一些影响dt.datetime.strptime 的问题。

【讨论】:

  • 我认为apply 更难读,更简单:pd.to_datetime(a["Fecha Inicial"].replace(mapping_dict, regex=True))
  • 完美@MrFuppes,你试过那个吗?请在此处添加。对所有人都有帮助
  • 它在您的示例中运行良好,请随时将其集成到您的答案中:)
猜你喜欢
  • 1970-01-01
  • 2018-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-14
  • 2021-12-06
  • 2017-05-20
相关资源
最近更新 更多