我有一些服务器日志数据,显示用户和项目交互。我不知道用户查看某个项目的次数,只知道它发生了什么。 Pandas有没有一种方法可以同时聚合两列来实现这一目的而不需要循环?
以下是一个例子:
import pandas as pd
a = pd.DataFrame([['A', 2], ['A', 2], ['A', 3], ['B', 1], ['B', 1], ['B', 1], ['B', 3]], columns=['UserID', 'ItemID'])
print a
# Desired output:
print pd.DataFrame([['A', 2], ['A', 3], ['B', 1], ['B', 3]], columns=['UserID', 'ItemID'])
UserID ItemID
0 A 2
1 A 2
2 A 3
3 B 1
4 B 1
5 B 1
6 B 3
UserID ItemID
0 A 2
1 A 3
2 B 1
3 B 3
答案 0 :(得分:3)
怎么样:
>>> a
UserID ItemID
0 A 2
1 A 2
2 A 3
3 B 1
4 B 1
5 B 1
6 B 3
>>> a.drop_duplicates()
UserID ItemID
0 A 2
2 A 3
3 B 1
6 B 3
>>> a.drop_duplicates().reset_index(drop=True)
UserID ItemID
0 A 2
1 A 3
2 B 1
3 B 3