我有一个类似的数据帧
Anno | Mese
___________
2018 | Gennaio
2019 | Febbraio
2020 | Aprile
如果Mese的值为:Gennaio、Febbraio、Marzo->我想让安诺一岁_Q1如果梅斯的值是:Aprile,Maggio,Giugno,->我希望安诺是一岁_Q2如果Mese的值为:Luglio、Agosto、Settembre、-->我希望安诺是一岁_Q3如果Mese的值为:Ottobre、Novembre、Dicembre-->我想让安诺成为的第四季度
我的预期输出是:
Anno | Mese
___________
2018_Q1 | Gennaio
2019_Q1 | Febbraio
2020_Q2 | Aprile
在Pandas,我如何才能以高效的方式做到这一点?
使用Series.map
by dictionary with chnged dictionary并添加到anno
列:
d = {'Q1': ['Gennaio', 'Febbraio', 'Marzo'],
'Q2': ['Aprile', 'Maggio', 'Giugno'],
'Q3': ['Luglio', 'Agosto', 'Settembre'],
'Q4': ['Ottobre', 'Novembre', 'Dicembre']}
#http://stackoverflow.com/a/31674731/2901002
d1 = {k: oldk for oldk, oldv in d.items() for k in oldv}
df['Anno'] = df['Anno'].astype(str) + '_' + df['Mese'].map(d1)
print (df)
Anno Mese
0 2018_Q1 Gennaio
1 2019_Q1 Febbraio
2 2020_Q2 Aprile