pandas:删除重复行,同时保留虚拟变量值

2022-01-22 00:00:00 pandas dataframe pivot-table stack

问题描述

我有以下数据框示例:

child_id   feature_1   feature_2   feature_3   feature_4   feature_5
   10          1           0           0          0            0
   10          0           0           1          0            0
   10          0           1           0          0            0
   10          0           0           0          1            0
   20          0           0           0          0            1
   20          1           0           0          0            0
   20          0           1           1          0            0
   20          0           0           0          0            0

但是,我想要这个堆叠的数据框,所以子 ID 不会重复多次:

However, I would like to have this stacked dataframe, so children IDs are not repeated several times:

child_id   feature_1   feature_2   feature_3   feature_4   feature_5
   10          1           1           1           1           0
   20          1           1           1           0           1

由于每一行都不同,我不能简单地删除重复项.有任何想法吗?非常感谢!

As every row is different, I cannot simply drop the duplicates. Any ideas? Thank you very much!


解决方案

child_id  = [10,10,10,10,20,20,20,20]  
feature_1 = [1,0,0,0,0,1,0,0]  
feature_2 = [0,0,1,0,0,0,1,0]
feature_3 = [0,1,0,0,0,0,1,1]  
feature_4 = [0,0,0,1,0,0,0,0]
feature_5 = [0,0,0,0,1,0,0,0]

import pandas as pd
df = pd.DataFrame(zip(child_id,feature_1,feature_2,feature_3,feature_4,feature_5),columns=['A','B','C','D','E','F'])
df

df.groupby('A').max()

 #10       1    1   1   1   0
 #20       1    1   1   0   1

相关文章