【发布时间】:2021-11-17 06:44:09
【问题描述】:
鉴于以下 DataFrame,我如何在所有父母的父母分组中找到重复项?
data = {'buildings': {0: 'mansion', 1: 'mansion', 2: 'house', 3: 'house', 4: 'house', 5: 'apartment', 6: 'apartment', 7: 'apartment', 8: 'apartment', 9: 'apartment', 10: 'apartment', 11: 'apartment', 12: 'condo', 13: 'condo', 14: 'condo', 15: 'condo', 16: 'condo', 17: 'condo'},
'vehicles': {0: 'plane', 1: 'boat', 2: 'small car', 3: 'small car', 4: 'big car', 5: 'small truck', 6: 'big truck', 7: 'big truck', 8: 'big truck', 9: 'big truck', 10: 'big truck', 11: 'big truck', 12: 'condo', 13: 'condo', 14: 'condo', 15: 'condo', 16: 'condo', 17: 'condo'},
'animals': {0: 'plane', 1: 'boat', 2: 'ape', 3: 'fish', 4: 'big car', 5: 'small truck', 6: 'chimp', 7: 'monkey', 8: 'lemur', 9: 'tiger', 10: 'lion', 11: 'jaguar', 12: 'bobcat', 13: 'monkey', 14: 'lemur', 15: 'tiger', 16: 'lion', 17: 'jaguar'},
'Value': {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10, 11: 11, 12: 12, 13: 13, 14: 14, 15: 15, 16: 16, 17: 17}}
g = pd.DataFrame(data).groupby(by=['buildings', 'vehicles', 'animals']).sum()
print(g)
输出:
Value
buildings vehicles animals
apartment big truck chimp 6
jaguar 11
lemur 8
lion 10
monkey 7
tiger 9
small truck small truck 5
condo condo bobcat 12
jaguar 17
lemur 14
lion 16
monkey 13
tiger 15
house big car big car 4
small car ape 2
fish 3
mansion boat boat 1
plane plane 0
原谅无意义的数据,但孩子是车辆和动物。建筑物列不是子列,因为它位于第 0 列位置。
我想识别子列中的重复项。在这里,动物子列中有 5 个重复项: 猴子、狐猴、老虎、狮子、美洲虎。
车辆子列中有 0 个重复项。
我正在寻找一个仅由包含 5 个重复项的行组成的数据框。由于这里有 5 个副本,每个副本都有 2 个值,因此输出数据帧应该是 10 行长。
最后,数据框的宽度可能会有所不同。 (这里有 2 个子列,但在另一种情况下可能有多达 10 个子列)。
如果不清楚,我深表歉意。
【问题讨论】:
标签: python pandas dataframe duplicates pandas-groupby