首页 > 解决方案 > 使用 pandas 替换列中的值时出错

问题描述

我正在尝试用数字替换列中的值。这些是列中的唯一值:

['R2' '01' '02' 'C1']

所以我做了这个

data = pd.read_csv('file.csv')
df = pd.DataFrame(data)

df['rates'].apply({'R2': 1, '01' : 2, '02' : 3, 'C1' : 4}.get)

但是当我尝试在假定的替换后打印出 df['rates'] 时,我仍然得到相同的值:

['R2' '01' '02' 'C1']

这就是我的 file.csv 的样子

amount,id,rates,height
1400,4,R2,3
1389,6,R2,8
10000,1,01,13

标签: pythonpandas

解决方案


尝试map

df['rates'].map({'R2': 1, '01' : 2, '02' : 3, 'C1' : 4},inplace=True)

或者:

df['rates'] = df['rates'].map({'R2': 1, '01' : 2, '02' : 3, 'C1' : 4})

实际上您的代码有效,但需要分配:

df['rates']=df['rates'].apply({'R2': 1, '01' : 2, '02' : 3, 'C1' : 4}.get)

推荐阅读