三行代码  ›  专栏  ›  技术社区  ›  user10689363

基于数据帧的条件格式添加字符串

  •  0
  • user10689363  · 技术社区  · 5 天前

    数据={“分数”:[1,2,3,4,5,6,7,8,9,10,11,12],“月份”:['1月','2月','3月','4月','5月','6月','8月','9月','10月','11月','12月]] df2=pd.DataFrame(数据)

    Desired output:

    到目前为止,我尝试了以下方法,但没有得到上述结果:

    `

    for i in df2['month']:
       if (i=='jan' or i=='feb' or i=='mar'):
            df2['q'] = '1Q'
       else:
            df2['q']='other'
    

    `

    1 回复  |  直到 5 天前
        1
  •  2
  •   jezrael    5 天前

    使用 Series.dt.quarter q :

    df2['new'] = 'q' + pd.to_datetime(df2['month'], format='%b').dt.quarter.astype(str)
    

    或使用 Series.map

    d = {'jan':'q1', 'feb':'q1','mar':'q1',
         'apr':'q2','may':'q2', 'jun':'q2',
         'jul':'q3','aug':'q3', 'sep':'q3',
         'oct':'q4','nov':'q4', 'dec':'q4'}
        
    df2['new'] = df2['month'].map(d)