【问题标题】:Add a part of string in a column based on the values of another column (Python Pandas)根据另一列的值在列中添加部分字符串(Python Pandas)
【发布时间】:2020-11-25 10:23:59
【问题描述】:

我有一个这样的数据框

Anno | Mese
___________
2018 | Gennaio
2019 | Febbraio
2020 | Aprile

如果 Mese 的值是:Gennaio、Febbraio、Marzo --> 我希望 Anno 是 year_Q1 如果 Mese 的值为:Aprile, Maggio, Giugno, --> 我希望 Anno 是 year_Q2 如果 Mese 的值是:Luglio, Agosto, Settembre, --> 我希望 Anno 是 year_Q3 如果 Mese 的值是:Ottobre, Novembre, Dicembre --> 我希望 Anno 是 year_Q4

我的预期输出是:

Anno | Mese
___________
2018_Q1 | Gennaio
2019_Q1 | Febbraio
2020_Q2 | Aprile

如何在 Pandas 中有效地做到这一点?

【问题讨论】:

    标签: python-3.x pandas dictionary


    【解决方案1】:

    通过字典使用Series.map 并添加到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
    

    【讨论】:

      猜你喜欢
      • 2022-07-29
      • 1970-01-01
      • 2021-03-30
      • 2021-11-30
      • 1970-01-01
      • 2021-04-18
      • 1970-01-01
      • 2021-03-23
      • 1970-01-01
      相关资源
      最近更新 更多