Как создать новый DataFrame, где каждый столбец представляет вхождение экземпляра в строке предыдущего DataFrame - PullRequest
1 голос
/ 08 мая 2020

Допустим, у меня есть DataFrame:

---------------------------- 
  | col1   | col2   | col3   | col4
----------------------------
1 | red    | green  | blue   | yellow 
2 | orange | purple | green  | NaN
3 | pink   | red    | blue   | green
4 | orange | pink   | purple | grey
5 | grey   | red    | NaN    | NaN

Я хочу создать новый DataFrame, который устанавливает каждый возможный экземпляр как новый столбец и дает 1, если он встречается в строке, или 0, если он не:

  | red | green | blue | yellow | orange | purple | pink | grey
---------------------------------------------------------------
1 | 1   | 1     | 1    | 1      | 0      | 0      | 0    | 0 
2 | 0   | 1     | 0    | 0      | 1      | 1      | 0    | 0 
3 | 1   | 1     | 1    | 0      | 0      | 0      | 1    | 0 
4 | 0   | 0     | 0    | 0      | 1      | 1      | 1    | 1 
5 | 1   | 0     | 0    | 0      | 0      | 0      | 0    | 1 

Как я мог go достичь этого?

1 Ответ

0 голосов
/ 08 мая 2020

Используйте get_dummies с max для всегда 0,1 значений или возможно использование sum для подсчета 1:

df = pd.get_dummies(df, prefix='', prefix_sep='').max(level=0, axis=1)
print (df)
   grey  orange  pink  red  green  purple  blue  yellow
1     0       0     0    1      1       0     1       1
2     0       1     0    0      1       1     0       0
3     0       0     1    1      1       0     1       0
4     1       1     1    0      0       1     0       0
5     1       0     0    1      0       0     0       0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...