[英]DataFrame with multiple values in each column. How to one-hot encode them under the main heading?
[英]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.