python 检查pandas dataframe中每个值子集的重复索引

egdjgwm8  于 2023-04-04  发布在  Python
关注(0)|答案(2)|浏览(132)

我有以下 Dataframe :

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带来重复的条目,因为它没有单独考虑列的每个值。

3hvapo4f

3hvapo4f1#

可能的解决方案:

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

输出:

0
1
2fjabf4q

2fjabf4q2#

您可以用途:

>>> (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

相关问题