在这种情况下,如何使用python进行编码,将两个重复的行合并为一个单元格不同

时间:2019-01-30 10:52:11

标签: python

我需要以最高性能的方式通过python编写这种情况,因为我的数据约为33.8万行。

我想对重复的行进行分组以获得以下结果(表2)

ps:将删除SSS列并创建n列,该列代表SSS包含的值的总数

aaa     bbb     ccc      SSS

1       mmm     qq       S1
1       mmm     qq       S4
2       kkk     aa       S3
3       bbb     ee       S1
3       bbb     ee       S2
3       bbb     ee       S4
4       xxx     tt       S3

我需要获得的结果

aaa     bbb     ccc      S1     S2    S3     S4

1       mmm     qq       1      0      0      1
2       kkk     aa       0      0      1      0
3       bbb     ee       1      1      0      1 
4       xxx     tt       0      0      1      0

1 个答案:

答案 0 :(得分:1)

假设您使用的是熊猫,pivot_table在这里可能会有所帮助:

df['tot'] = 0      # add a column to have something to count

pd.pivot_table(df, index=['aaa','bbb','ccc'], columns='SSS', aggfunc='count', fill_value=0)
            tot         
SSS          S1 S2 S3 S4
aaa bbb ccc             
1   mmm qq    1  0  0  1
2   kkk aa    0  0  1  0
3   bbb ee    1  1  0  1
4   xxx tt    0  0  1  0