用字典值替换 pandas 列值

Replace pandas column values with dictionary values

我有一个字典,如下所示

OUTPUT = {'supplier': {0: 'ABCD',
  1: 'DEFG',
  2: 'GHIK',
  3: 'JKL'},
 'region': {0: 'KOREA',
  1: 'AUS/NZ',
  2: 'INDIA',
  3: 'ASEAN',
  4: 'HK / CHINA'}}

ID,supplier,region,subject
1, 0, 3, TEST
2, 1, 2, EXAM
3, 3, 4, VIVA

df = pd.read_clipboard(sep=',')

我想用字典中对应的映射值替换 supplierregion 列中的值

我尝试了以下

df["supplier"].replace(output) # not works
df['supplier'].map(output) # not works

但这引发了如下所示的错误

AttributeError: 'Series' object has no attribute '_replace_columnwise'

我希望我的输出如下所示

ID,supplier,region,subject
1, ABCD, ASEAN, TEST
2, DEFG, INDIA, EXAM
3, JKL, HK/CHINA, VIVA

您可以在循环中使用 map

for k,v in OUTPUT.items():
    df[k] = df[k].map(v)

或者简单地使用 replace :

df = df.replace(OUTPUT)

输出:

   ID supplier      region subject
0   1     ABCD       ASEAN    TEST
1   2     DEFG       INDIA    EXAM
2   3      JKL  HK / CHINA    VIVA