如何更改Pandas中仅某些ROW的日期-时间格式



我有一个数据帧,其中有一些列。其中一个是日期,但有些日期的格式是年月日(例如:2022年5月3日(,有些日期的形式是年月日。如何将列中的所有日期更改为一种格式(例如:dd-mm-yy(?

初始数据帧:

日期
序列号
0 2022年5月23日
1 2022年3月14日
2 2020年2月29日

我可以想出一个解决方案,根据日期字符串的长度处理两种不同的情况:

def format_date(date):
reformatter = {
"Jan": "01",
"Feb": "02",
"Mar": "03",
...
"Dec": "12"
}
if len(date) == 10:
return date
else:
return date[:4] + reformatter[date[3:6]] + date[6:]
df["Date"].apply(lambda x: format_date(x))

您可以尝试使用自动日期解析:

df['Date'] = (pd.to_datetime(df['Date'], infer_datetime_format=True)
.dt.strftime('%d-%m-%Y')
)

或者,使用str.replace:

from calendar import month_abbr
d = dict(zip(month_abbr, [f'{i:02d}' for i in range(13)]))
df['Date'] = df['Date'].str.replace(r'[A-Z][a-z]+', lambda x: d.get(x.group(), x), regex=True)

输出:

Serial        Date
0       0  23-05-2022
1       1  14-03-2022
2       2  29-02-2020

相关内容

  • 没有找到相关文章

最新更新