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

2024-09-29 00:20:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下熊猫数据帧

 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  

我该怎么做


Tags: 数据字典名单dict1columnlistofferpreference专栏作家
2条回答

用途:

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

或:

#if value not match get original value
df = df[columnlist].replace(dict1)

或:

#if value not match get NaN
df = df[columnlist].stack().map(dict1).unstack()

print (df)
   OfferPreference_A  OfferPreference_B  OfferPreference_C
0                  1                  2                  1
1                  2                  3                  3
2                  3                  4                  5

您可以使用map来实现如下所示的效果,假设值总是匹配的

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

相关问题 更多 >