簡體   English   中英

DataFrame 在每列中有多個分號分隔的變量。 如何一鍵編碼?

[英]DataFrame with multiple semi-colon separated variables in each column. How to one-hot encode?

我有一個 DataFrame,每列中有多個變量 - 這些數據類型是字符串而不是列表。 我無法對每列中的數據進行 One-Hot Encode。

Out:

        A                     B                             C
Ella    Red; Blue; Yellow     Circle; Square; Triangle      Small; Medium; Extra big
Mike    Yellow; Red; Blue     Oval; Triangle; Circle        Medium; Big; Extra big
Dave    Yellow; Red; Green    Circle; Square; Triangle      Extra small; Medium; Big

我希望使用多層列標題創建它,如下所示:

       A                                 B                                     C
       Red    Blue   Green   Yellow      Circle   Triangle  Square   Oval      ....
Ella   1      1      0       1           1        1         1        0         ....
Mike   1      1      0       1           1        1         0        1         ....   
Dave   1      0      1       1           1        1         1        0         .... 

我試過了,它對我有幫助,但只有當所有列都具有相同的變量時才有效: https://stackoverflow.com/a/67110743/15646168

df = df.stack().str.get_dummies(sep=',')
df.columns = df.columns.str.strip()
df = df.stack().groupby(level=[0,1,2]).sum().unstack(level=[1,2])

太感謝了!

在帶有Series.str.get_dummies的 dict comprehseion 中使用concat - 僅將分隔符更改為;

df = pd.concat({x: df[x].str.get_dummies(sep='; ') for x in df.columns}, axis=1)
print (df)
        A                       B                        C            \
     Blue Green Red Yellow Circle Oval Square Triangle Big Extra big   
Ella    1     0   1      1      1    0      1        1   0         1   
Mike    1     0   1      1      1    1      0        1   1         1   
Dave    0     1   1      1      1    0      1        1   1         0   

                               
     Extra small Medium Small  
Ella           0      1     1  
Mike           0      1     0  
Dave           1      1     0  

暫無
暫無

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

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