如何找到2个数据帧之间匹配行的索引

问题描述 投票:0回答:1

我有 2 个数据框,其中有部分匹配的列:

data_a = ['a', 'b', 'c', 'd', 'e', 'f']
data_b = ['b', 'd', 'f', 'h']
df1 = pd.DataFrame(data_a, columns=['data'])
df2 = pd.DataFrame(data_b, columns=['data'])

我想获得

df2
df1
中数据之间的索引匹配。 比如:

indices = [1, 3, 5, None]

因此

df2
的 0 索引行与
df1
的 1 索引行匹配,
df2
的 1 索引行与
df1
的 3 索引行匹配,依此类推...

如果不匹配,则值为

None
或任何负值。

我可以循环执行,但速度很慢。
我正在寻找有效的方法来获得这个或类似的东西。

python pandas dataframe performance optimization
1个回答
0
投票

reset_index
,然后向左-
merge
:

df2.merge(df1.reset_index(), on='data', how='left')

输出:

  data  index
0    b    1.0
1    d    3.0
2    f    5.0
3    h    NaN
© www.soinside.com 2019 - 2024. All rights reserved.