根据另一列的值在列中添加字符串的一部分(Python Pandas)



我有一个类似的数据帧

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.mapby 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

最新更新