簡體   English   中英

在Python中根據列表和字典對多列進行編碼

[英]code multiple columns based on lists and dictionaries in 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  

我該怎么做呢。

采用:

#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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM