要比较两个不同大小的熊猫(Pandas)数据框,并找到具有相等值的行索引,可以按照以下步骤进行操作:
import pandas as pd
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [3, 2, 1], 'B': [6, 5, 4], 'C': [7, 8, 9]})
merge
函数将两个数据框合并,并使用indicator=True
选项指示合并的来源:merged = df1.merge(df2, how='outer', indicator=True)
query
方法筛选出_merge
列值为both
的行,并获取其索引:equal_rows = merged.query('_merge=="both"').index
print(equal_rows)
完整的代码示例如下:
import pandas as pd
# 创建两个不同大小的数据框
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [3, 2, 1], 'B': [6, 5, 4], 'C': [7, 8, 9]})
# 合并数据框并指示来源
merged = df1.merge(df2, how='outer', indicator=True)
# 筛选出具有相等值的行索引
equal_rows = merged.query('_merge=="both"').index
# 打印结果
print(equal_rows)
输出结果将是:
Int64Index([0, 1, 2], dtype='int64')
这表示在两个数据框中具有相等值的行的索引是0、1和2。
上一篇:比较两个不同大小的图像的坐标。
下一篇:比较两个不同的客户列表