我需要以最高性能的方式通过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
答案 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