这里有一个数据集:
我想将数值映射到CASE_STATUS
值
df.CASE_STATUS.value_counts()
CERTIFIED 2615623
CERTIFIED-WITHDRAWN 202659
DENIED 94346
以下是我的操作但有string indices must be integers, not str
错误:
for dataset in df:
dataset['CASE_STATUS'] = dataset['CASE_STATUS'].map( {'CERTIFIED':1 , 'CERTIFIED-WITHDRAWN': 1, 'DENIED': 0} ).astype(int)
我应该如何将值映射到CASE_STATUS
?
答案 0 :(得分:1)
我认为你不需要for
循环:
dict_map = {'CERTIFIED':1 , 'CERTIFIED-WITHDRAWN': 1, 'DENIED': 0}
df['CASE_STATUS'] = df['CASE_STATUS'].map(dict_map)
df['CASE_STATUS'] = df['CASE_STATUS'].astype(int)
答案 1 :(得分:0)
要获得映射,您可以使用pandas方法to_dict
。
例如:
mapping = df.reset_index().CASE_STATUS.to_dict()
请注意,我之前使用reset_index()
来确保索引从0到n(n =您拥有的行数)。
然后,您可以使用简单的地图转换列:
df["CASE_STATUS"] = df["CASE_STATUS"].map(mapping)
跟踪你的地图转换很有意思,这就是为什么词典创建是重要的一步。