给定一个pandas DataFrame,如何将多个二进制列(其中1表示该值存在,0表示不存在)转换为单个分类列?
另一种思考方式是如何执行“反向pd.get_dummies()”?
以下是将分类列转换为多个二进制列的示例:
另一种思考方式是如何执行“反向pd.get_dummies()”?
以下是将分类列转换为多个二进制列的示例:
import pandas as pd
s = pd.Series(list('ABCDAB'))
df = pd.get_dummies(s)
df
A B C D
0 1 0 0 0
1 0 1 0 0
2 0 0 1 0
3 0 0 0 1
4 1 0 0 0
5 0 1 0 0
我希望能够处理一个数据框。
df1
A B C D
0 1 0 0 0
1 0 1 0 0
2 0 0 1 0
3 0 0 0 1
4 1 0 0 0
5 0 1 0 0
我可以将它转换成什么?
df1
A B C D category
0 1 0 0 0 A
1 0 1 0 0 B
2 0 0 1 0 C
3 0 0 0 1 D
4 1 0 0 0 A
5 0 1 0 0 B
df[some_list_of_columns_you_care_about].idxmax(axis=1)
,或使用df.filter
,或使用带有函数的df.select
,或使用具有掩码的df.loc
,或使用具有位置指定的df.iloc
等方法。 - DSM