Python 如何根据特定条件将数据帧中具有月份的列转换为字母数字(而不是数字)
我有一个数据框,其中一列包含月份 我想用字母数字(1、2、3等,而不是1、2、3等)更新月份的值 是否有任何库可用于对整个列进行此转换 备注-该列包含1200多行,因此手动操作没有意义。与字典一起使用: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
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”
干杯 请添加一个小的输入和预期的输出