Python 如何将一行的值与所有其他行的值进行比较?

Python 如何将一行的值与所有其他行的值进行比较?,python,pandas,dataframe,Python,Pandas,Dataframe,我想把熊猫中的每一行与所有其他行进行比较 具有此数据帧: index entity a 1 2 3 b 3 3 9 c 10 0 1 d 9 3 0 我想要一个关于: [0,1]、[0,2]、[0,3](这些是

我想把熊猫中的每一行与所有其他行进行比较

具有此数据帧:

index     entity

a           1
            2
            3

b           3
            3
            9

c           10
            0
            1

d           9
            3
            0
我想要一个关于:

[0,1]、[0,2]、[0,3]
(这些是索引),因为每列中都存在1,2,3(这些是列中的值)。另外,我如何计算重复的匹配?例如,索引A查找一个包含所有值(一、二、三)的对,索引C仅包含一个值(零)

我知道我需要在变量中保留索引为A的行,然后将其与循环中的所有其他行进行比较。完成此操作后,我移动到索引为B的行,并每隔一行重复此操作,包括索引为A的行

如何在内存中保留一行并与所有其他行进行检查

输出可以是列表[0,1]、[0,2]的格式,其中数字是索引

这就是我现在想到的伪代码:

var = [x for x in e_dataframe.entity]

for rows in e_dataframe.entity:
    for x in var:
        if x == rows:
            print('match', x, ' and ', rows)
        else:
            print('not match ', x , ' and ', rows)
其中,
实体
我们上面的数值列是什么


当然这是错误的,我什么都不匹配。我不知道怎么写这个循环。我不太清楚您想做什么,但这里有一个运行的代码版本。请注意对变量名的一些小更改

var = [x for x in df["entity"]]
#print(var)

for row in df["entity"]:
    #print(row)
    for x in var:
        if x == row:
            print('match', x, ' and ', row)
        else:
            print('not match ', x , ' and ', row)

你想找重复的吗?我也不明白你提到的索引对背后的逻辑。

我采用了某种混合方法。但在某种程度上,它只是在寻找重复的值

首先,我创建了一个带有True/False的新列,具体取决于实体是否重复(发现了多次)。然后我遍历实体的元组和它的布尔值。我已经设置了检查实体是否确实重复的条件,然后我将实体值作为pandas dataframe的掩码来查找所有其他相同的实体

df_words['dup_check'] = df_words.entity.duplicated(keep=False)
indexes_list = []

for rows in zip(df_words.entity, df_words.dup_check):
    if rows[1] == True:
            i_list = df_words[df_words.entity == rows[0]]
            indexes_list.append(i_list)

哦,我在if语句中做了错误的条件,你们的条件是正确的,我将编辑我的问题。是的,现在它找到了匹配项,但这仍然不是我想要完成的。首先,请注意DF是多索引数据的形式(每个索引包含3个值)。第二,我不尝试寻找重复的,我尝试寻找交叉点(或类似的东西)。通过交叉,我的意思是“索引[N]行值['x']也可以在索引[N+len(df)]中找到”。