在Python中基于列表和字典编写多列代码

在Python中基于列表和字典编写多列代码,python,pandas,Python,Pandas,我有以下熊猫数据框 OfferPreference_A OfferPreference_B OfferPreference_C A B A B C C C S G 我在所有列下都有以

我有以下熊猫数据框

 OfferPreference_A  OfferPreference_B   OfferPreference_C   
            A          B                  A                  
            B          C                  C                 
            C          S                  G  
我在所有列下都有以下唯一值字典

  dict1={A:1, B:2, C:3, S:4, G:5, D:6}
我还有一个专栏的列表

  columnlist=['OfferPreference_A', 'OfferPreference_B', 'OfferPreference_C']
我试图得到下表作为输出

    OfferPreference_A   OfferPreference_B   OfferPreference_C   
               1           2                  1                  
               2           3                 3                  
               3           4                  5  
如何做到这一点。

使用:

#if value not match get NaN
df = df[columnlist].applymap(dict1.get)
或:

或:

使用:

或:

或:

假设这些值总是匹配的,您可以使用如下所示的映射

for col in columnlist:
    df[col] = df[col].map(dict1)
假设这些值总是匹配的,您可以使用如下所示的映射

for col in columnlist:
    df[col] = df[col].map(dict1)

如果值不匹配怎么办?如果值不匹配怎么办?
print (df)
   OfferPreference_A  OfferPreference_B  OfferPreference_C
0                  1                  2                  1
1                  2                  3                  3
2                  3                  4                  5
for col in columnlist:
    df[col] = df[col].map(dict1)