Python 我不能用dict替换列值

Python 我不能用dict替换列值,python,pandas,Python,Pandas,我试图用字典值替换列值,但出现以下错误: ValueError:列的长度必须与键的长度相同 下面是我的程序: st_name = {'01' : 'AL','02':'AK', '04': 'AZ','05': 'AR','06': 'CA','08': 'CO','09': 'CT', '10': 'DE','11': 'DC','12': 'FL','13': 'GA','15': 'HI','16': 'ID','17': 'IL', '18': 'IN', '1

我试图用字典值替换列值,但出现以下错误: ValueError:列的长度必须与键的长度相同

下面是我的程序:

st_name = {'01' : 'AL','02':'AK', '04': 'AZ','05': 'AR','06': 'CA','08': 'CO','09': 'CT',
      '10': 'DE','11': 'DC','12': 'FL','13': 'GA','15': 'HI','16': 'ID','17': 'IL', '18': 'IN', 
      '19': 'IA' ,'20': 'KS','21': 'KY','22':'LA','23': 'ME','24':'MD','25': 'MA','26': 'MI','73': 'MI', '27': 'MN',
      '28': 'MS','29': 'MO', '30': 'MT', '31': 'NE', '32': 'NV', '33': 'NH','34': 'NJ','35': 'NM', 
      '36': 'NY', '37': 'NC','38': 'ND', '39': 'OH','74': 'OH', '40': 'OK', '41': 'OR','42': 'PA', '44': 'RI', 
      '45': 'SC', '46': 'SD', '47': 'TN', '48': 'TX', '49': 'UT','75': 'UT', '50': 'VT', '51': 'VA', '53': 'WA',
      '54': 'WV', '55': 'WI', '56': 'WY','76': 'WY', '60': 'AS', '66':'GU', '72': 'PR', '78': 'VI'}
df['state_code'] = df['state_code'].astype(str).str.zfill(2)
df[['stateabr']] = df.replace({'state_code' : st_name})
有办法解决长度问题吗?

使用:


您需要在此处使用地图,而不是替换
# Example dataframe
print(df)
  state_code
0         01
1         02
2         03
3         04

st_name = {'01' : 'AL','02':'AK', '04': 'AZ'}
df['stateabr'] = df.state_code.map(st_name)

print(df)
  state_code stateabr
0         01       AL
1         02       AK
2         03      NaN
3         04       AZ