检查pandas数据框架中每个值子集的重复索引



我有以下数据框架:

import pandas as pd
df_test = pd.DataFrame(data=[['AP1', 'House1'],
['AP1', 'House1'], 
['AP2', 'House1'], 
['AP3', 'House2'], 
['AP4','House2'], 
['AP5', 'House2']],
columns=['AP', 'House'],
index=[0, 1, 2, 0, 1, 1])

我需要检查列值的每个子集,看看是否有重复的索引。例如,在House列中,我们有House1的三个条目,并且没有重复的索引。但是对于条目House2,我们有一个重复索引1

我已经试过了:

print(f'{df_test.index.duplicated().sum()} repeated entries')

但是这给了3重复的条目,因为它没有单独考虑列的每个值。

一个可能的解决方案:

print(df_test.reset_index().duplicated(['index', 'AP']).sum())
print(df_test.reset_index().duplicated(['index', 'House']).sum())

输出:

0
1

您可以使用:

>>> (df_test.reset_index(names='Dups')
.groupby('House', as_index=False)['Dups']
.agg(lambda x: x.duplicated().sum()))
House  Dups
0  House1     0
1  House2     1

相关内容

  • 没有找到相关文章

最新更新