我试图用字典值替换列值,但是出现以下错误: 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})
有没有办法解决长度问题?
答案 0 :(得分:1)
# 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