首页 > 解决方案 > TypeError: unhashable type: 'list' 数据框列表映射

问题描述

我正在尝试使用列表而不是字符串来映射数据

如果数字在列表内,则将其映射到xyz

有什么办法可以使用列表来做到这一点?

import pandas as pd

df = pd.DataFrame({'INDICATOR': ['0001024561', 'B', '0001024561', 'D'], 'VALUE': [10, 9, 8, 7]})

company_dict = {[
    '0001024561',
    '0001024576',
    ]: 'xyz'}

df['NEW_VALUE'] = df['INDICATOR'].map(company_dict)

print(df)

错误:

TypeError: unhashable type: 'list' 

标签: pandaslistdataframe

解决方案


重症监护病房:

使用字典

company_dict = {'0001024561':'xyz','0001024576':'xyz'}
df['NEW_VALUE'] = df['INDICATOR'].map(company_dict)

使用列表

lst=['0001024561','0001024576']
df.loc[df['INDICATOR'].isin(lst),'NEW_VALUE']='xyz'

推荐阅读