首页 > 解决方案 > 在两个不同的数据框python中获取匹配的行

问题描述

在此先感谢 - 问题是比较 csv 文件的两个单独数据帧的行;有和没有列标题。我想将第二个数据帧中的行与数据帧一中的行匹配。我不能使用合并,因为两者都没有要合并的通用列名。

1:第一个数据框有标题

2:第二个数据框没有标题。

3:获取匹配的位置

我试过这个:

    df1 = pd.read_csv(data1)
    df2 = pd.read_csv(data2)
    def test1():
    for index, rows in df1.iterrows():
        if rows in (df2):
            return nrows 

数据集:

第一个数据集:
第一个数据集

第二个数据集:
第二个数据集

标签: pythonpython-3.xpandascsvdataframe

解决方案


首先将标题添加到第二个dataframe

df2.columns = df1.columns

或者,更好的是,在读取文件时首先定义它们:

df2 = pd.read_csv(data2, header=None, names=df1.columns.tolist())

然后inner merge他们只保留在两者中相同存在的行:

united_df = df1.merge(df2, how='inner')

推荐阅读