给定具有未指定数量的记录且具有重复密钥1和1的数据帧。 key2对,但不一定是相同的数据。 (即,Key1和Key2的组合是非唯一的。) 我需要为重复的记录添加相应的数据列,最后得到具有唯一key1& amp;记录的记录。 key2值。 我已经浏览了网页,但我能找到的是关于删除重复记录的帖子,而且我没有重复记录,我有重复密钥1和记录的记录。 key2对。
以下代码应简化并说明我正在寻找的内容:
import pandas as pd
data={'key1':[1,2,3,1,2,3,2,2],'key2':[2,2,1,2,2,4,2,2],'data':[5,6,2,6,1,6,2,8]}
frame=pd.DataFrame(data,columns=['key1','key2','data'])
print frame
key1 key2 data
0 1 2 5
1 2 2 6
2 3 1 2
3 1 2 6
4 2 2 1
5 3 4 6
6 2 2 2
7 2 2 8
记录0和3具有重复的Key1和Key2对“1”和& “2”
记录1,4,6和7具有重复的key1和key2对“2”& “2”
我需要结束以下内容:(所有key1& Key2对唯一,数据汇总)
key1 key2 data
0 1 2 11 (11 = 5+6, sum of data from Records 0 and 3)
1 2 2 17 (17 = 6+1+2+8, sum of data from Records 1, 4, 6, and 7)
2 3 1 2
3 3 4 6
答案 0 :(得分:1)
正如MaxU所说,您可以使用groupby
然后使用sum()
方法:
frame.groupby(['key1', 'key2'])['data'].sum().reset_index()
Out[12]:
key1 key2 data
0 1 2 11
1 2 2 17
2 3 1 2
3 3 4 6
答案 1 :(得分:0)
无需使用参数as_index=False
- reset_index
汇总sum
的解决方案:
print (frame.groupby(['key1', 'key2'], as_index=False)['data'].sum())
key1 key2 data
0 1 2 11
1 2 2 17
2 3 1 2
3 3 4 6