Python 如何根据特定条件将数据帧中具有月份的列转换为字母数字(而不是数字)

Python 如何根据特定条件将数据帧中具有月份的列转换为字母数字(而不是数字),python,pandas,Python,Pandas,我有一个数据框,其中一列包含月份 我想用字母数字(1、2、3等,而不是1、2、3等)更新月份的值 是否有任何库可用于对整个列进行此转换 备注-该列包含1200多行,因此手动操作没有意义。与字典一起使用: s = pd.to_datetime([1,2,3,4,5,6,7,8,9,10,11,12], format='%m').strftime('%b') df = pd.DataFrame({'months': s}) d = {'Jan': 'One', 'Feb': 'Two', 'Ma

我有一个数据框,其中一列包含月份

我想用字母数字(1、2、3等,而不是1、2、3等)更新月份的值 是否有任何库可用于对整个列进行此转换

备注-该列包含1200多行,因此手动操作没有意义。

与字典一起使用:

s = pd.to_datetime([1,2,3,4,5,6,7,8,9,10,11,12], format='%m').strftime('%b')
df = pd.DataFrame({'months': s})


d = {'Jan': 'One', 'Feb': 'Two', 'Mar': 'Three', 
     'Apr': 'Four', 'May': 'Five', 
     'Jun': 'Six', 'Jul': 'Seven', 'Aug': 'Eight',
     'Sep': 'Nine', 'Oct': 'Ten', 'Nov': 'Eleven', 'Dec': 'Twelve'}

df['months1'] = df['months'].map(d)
print (df)
   months months1
0     Jan     One
1     Feb     Two
2     Mar   Three
3     Apr    Four
4     May    Five
5     Jun     Six
6     Jul   Seven
7     Aug   Eight
8     Sep    Nine
9     Oct     Ten
10    Nov  Eleven
11    Dec  Twelve

没有库会自动为您执行此操作。你必须给出每个月的值,因为你提到你有月份的“名称”而不是数字。试试这个:

df['arrival_date_month'] = df['arrival_date_month'].str[:3]
df.loc[df["arrival_date_month"] == "Jan", 'arrival_date_month'] = 'One'
df.loc[df["arrival_date_month"] == "Feb", 'arrival_date_month'] = 'Two'
df.loc[df["arrival_date_month"] == "Mar", 'arrival_date_month'] = 'Three'
df.loc[df["arrival_date_month"] == "Apr", 'arrival_date_month'] = 'Four'
df.loc[df["arrival_date_month"] == "May", 'arrival_date_month'] = 'Five'
df.loc[df["arrival_date_month"] == "Jun", 'arrival_date_month'] = 'Six'
df.loc[df["arrival_date_month"] == "Jul", 'arrival_date_month'] = 'Seven'
df.loc[df["arrival_date_month"] == "Aug", 'arrival_date_month'] = 'Eight'
df.loc[df["arrival_date_month"] == "Sep", 'arrival_date_month'] = 'Nine'
df.loc[df["arrival_date_month"] == "Oct", 'arrival_date_month'] = 'Ten'
df.loc[df["arrival_date_month"] == "Nov", 'arrival_date_month'] = 'Eleven'
df.loc[df["arrival_date_month"] == "Dec", 'arrival_date_month'] = 'Twelve'
有趣的事实:如果你想根据某些条件设置值,你也可以在这里玩条件。尝试用其他条件替换==“Jan”


干杯

请添加一个小的输入和预期的输出