1

ユーザーとアイテムのやり取りを示すサーバーログデータがあります。ユーザーがアイテムを何回見たかを知ることには興味がありません。それが起こったことだけです。ループなしでこれを達成するために、パンダに両方の列を一度に集約する方法はありますか?

次に例を示します。

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 に答える