如果我有一个月份写为jan,feb等的csv文件,我可以用pandas或python将它们转换为全名January等吗?

afdcj2ne  于 12个月前  发布在  Python
关注(0)|答案(1)|浏览(133)

我有一个CSV文件,其中一个月列的月份是写在焦vaiated形式。例如一月,二月,三月,
我希望他们在一个图,即一月,二月,四月等目的完整的月份输出
如何使用python或pandas格式化?我试过

df['Month'] = df['Month'].strftime('B%')

字符串
和其他各种东西,但不能让它工作。

mlnl4t2r

mlnl4t2r1#

你可以建立一个字典,然后map这些名字:

import calendar

df = pd.DataFrame({'month': ['Jan', 'Feb', 'Mar']})

mapper = dict(zip(calendar.month_abbr, calendar.month_name))

df['month_long'] = df['month'].map(mapper)

字符串
输出量:

month month_long
0   Jan    January
1   Feb   February
2   Mar      March


如果是子字符串,使用str.replace和正则表达式:

import calendar

mapper = dict(zip(calendar.month_abbr, calendar.month_name))

df['month_long'] = df['month'].str.replace(r'(%s)\b' % '|'.join(mapper),
                                           lambda m: mapper[m.group()],
                                           regex=True)


范例:

month         month_long
0      Jan 2023       January 2023
1  Feb 1st 2023  February 1st 2023
2           Mar              March

相关问题