Python Pandas多个groupby和filter

Python Pandas多个groupby和filter,python,pandas,Python,Pandas,我有这个数据框: df = pd.DataFrame(np.array([ [1, 'Black', 233, 342], [1, 'White', 342, 1222], [1, 'Orange', 432, 1234], [1, 'Orange', 2234, 1345], [1, 'Orange', 2234, 1345], [2, 'Pink', 444, 222], [2,

我有这个数据框:

df = pd.DataFrame(np.array([
        [1, 'Black', 233, 342],
        [1, 'White', 342, 1222],
        [1, 'Orange', 432, 1234],
        [1, 'Orange', 2234, 1345],
        [1, 'Orange', 2234, 1345],
        [2, 'Pink', 444, 222],
        [2, 'White', 35345, 2345434],
        [3, 'Black', 4544, 2222],
        [4, 'White', 4433, 123],
        [4, 'White', 4433, 123],
        [4, 'White', 4433, 123],
        [4, 'White', 4433, 123],
        [4, 'White', 4433, 123],
        [4, 'White', 4433, 123],
]), columns=['ID', 'TITLE', 'ITEM_ID', 'CARD_ID'])
ID标题项目\u ID卡\u ID 01黑色233342 1 1白色342 1222 2 1橙色432 1234 3 1橙色2234 1345 4 1橙色2234 1345 5 2粉红色444 222 6 2白色35345 2345434 7 3黑色45442222 8 4白色4433 123 9 4白色4433 123 10 4白色4433 123 11 4白色4433 123 12 4白色4433 123 13 4白色4433 123 我只想获取具有相同ID但不同标题的行(当标题超过一个时,当然要删除重复标题):

ID标题项目\u ID卡\u ID 01黑色233342 1 1白色342 1222 2 1橙色432 1234 5 2粉红色444 222 6 2白色35345 2345434
请帮帮我。

ID
分组,删除标题中唯一值计数为1的行;之后,您可以删除重复项

(df.loc[df.groupby("ID")
          .TITLE
          .transform("nunique")
          .gt(1)]
   .drop_duplicates(["ID", "TITLE"])
  )



    ID  TITLE   ITEM_ID     CARD_ID
0   1   Black   233     342
1   1   White   342     1222
2   1   Orange  432     1234
5   2   Pink    444     222
6   2   White   35345   2345434
ID TITLE ITEM_ID CARD_ID 0 1 Black 233 342 1 1 White 342 1222 2 1 Orange 432 1234 5 2 Pink 444 222 6 2 White 35345 2345434
(df.loc[df.groupby("ID")
          .TITLE
          .transform("nunique")
          .gt(1)]
   .drop_duplicates(["ID", "TITLE"])
  )



    ID  TITLE   ITEM_ID     CARD_ID
0   1   Black   233     342
1   1   White   342     1222
2   1   Orange  432     1234
5   2   Pink    444     222
6   2   White   35345   2345434