如何将数据帧的每一行与数据帧的所有行进行比较?

时间:2019-09-07 05:16:29

标签: python

我的数据框仅由一列组成,每一行都是一个列表。我想将每一行与其他所有行进行比较,以查找每个列表在该列中是否有任何子集,并且我想打印这些子集。您能为此建议代码吗?

1 个答案:

答案 0 :(得分:0)

我假设索引是从0到N的数字,并且您正在使用熊猫。如果不是这种情况,请将df.drop行编辑为df.drop(df [item])。我将每一行存储到一个变量中,然后删除该行以对该行与整个数据框进行比较。在给定的示例中,我正在数据框中使用一列(“标识符”)来检查我感兴趣的行与所有其他行之间的相似性。您可以在从数据框中拆分行后插入自己的逻辑。我希望这有帮助。

for item in range(len(df)):
    ## Split Row from Dataframe
    row_of_interest = df.iloc[item]
    df_without_row = df.drop(item)
    ## Perform Comparison of Row Characterisitics 
    ## Identifier is a column that I want to compare
    for j in range(len(df_without_row)):
        if df_without_row.iloc[j]["Identifier"] == row_of_interest["Identifier"]:
            do something ...

    ## Keep Row of interest or other rows