1

我有一些服务器日志数据,显示用户和项目交互。我不想知道用户查看了多少次,只知道它发生了。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
4

1 回答 1

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
于 2013-07-13T01:59:34.283 回答