我有一些功能DataFrame(比方说)如下所示:

Symptom A Symptom B
Itching Rash
Rash Itching

当我在此数据帧上运行GET_DUMMIES函数时,它将创建四个名为'Symptom_A_Itching', 'Symptom_A_Rash', 'Symptom_B_Rash', 'Symptom_B_Itching'的列.我不想在使用此函数时将这两个值分开处理.

有没有办法对此数据帧执行一次热编码,其中这两列的值不会被单独处理.

基本上,我希望得到一个列为'Symptom_Itching', 'Symptom_Rash'的DataFrame.

我try 在GET_DUMMIES函数中使用列和前缀参数,但没有产生任何结果.我还try 将所有症状列名称设置为'Symptom',而不是'Symptom_A', 'Symptom_B',但也不起作用.

这是我的代码:

data_frame: DataFrame = read_csv('dataset.csv')
features: DataFrame = data_frame.iloc[:, 1:]
features.fillna('')
x: DataFrame = get_dummies(features)

推荐答案

stack,然后是get_dummiesgroupby.max():

out = (df
   .stack().str.get_dummies()
   .groupby(level=0).max()
 )

或者使用一种技巧来获取具有相同名称的所有输出列以及axis=1上的groupby.max()列:

out = (pd.get_dummies(df.rename(columns=lambda x: ''), prefix_sep='')
         .groupby(level=0, axis=1).max()
       )

输出:

   Itching  Rash
0        1     1
1        1     1

Python相关问答推荐

如果在第一行之前不存在其他条件,如何获得满足口罩条件的第一行?

使用Python OpenCV的文本检测分割

Tkinter -控制调色板的位置

当值是一个integer时,在Python中使用JMESPath来验证字典中的值(例如:1)

如何在Python中使用ijson解析SON期间检索文件位置?

LAB中的增强数组

如何计算两极打印机中 * 所有列 * 的出现次数?

pandas DataFrame GroupBy.diff函数的意外输出

滚动和,句号来自Pandas列

根据在同一数据框中的查找向数据框添加值

在Python Attrs包中,如何在field_Transformer函数中添加字段?

如何记录脚本输出

将tdqm与cx.Oracle查询集成

SQLAlchemy Like ALL ORM analog

如何在Polars中从列表中的所有 struct 中 Select 字段?

如何根据一列的值有条件地 Select 前N个组,然后按两列分组?

将JSON对象转换为Dataframe

启动带有参数的Python NTFS会导致文件路径混乱

OpenGL仅渲染第二个三角形,第一个三角形不可见

pysnmp—lextudio使用next()和getCmd()生成器导致TypeError:tuple对象不是迭代器''