比较两个熊猫列,并返回与第二个元素匹配的第一个的索引

时间:2020-02-23 21:59:56

标签: python pandas python-2.7

假设我们有2个单独的数据帧,带有整数索引。

df1
                    dta  
0  2016-11-09 01:02:00
1  2016-11-09 01:04:00
2  2016-11-09 01:06:00

df2
                    dtb    
0  2016-11-09 01:04:00
1  2016-11-09 01:04:00
2  2016-11-09 01:04:00
3  2016-11-09 01:06:00

我正在尝试一种相对快速的方法来从df1返回索引值的列表,其中所有 dtb中的df2等于dta中的df1。当然,我们不必在这里使用日期,我只是 碰巧正在与他们合作。

因此,在上述情况下,我们的结果列表将为[1,1,1,2]

谢谢。

2 个答案:

答案 0 :(得分:2)

df1.dta是唯一的,因此使用get_indexer

很简单
ix = df1.set_index('dta').index
ix.get_indexer(df2.dtb)

Out[1219]: array([1, 1, 1, 2], dtype=int32)

答案 1 :(得分:0)

您可以使用熊猫的Indexget_loc

df2.apply(lambda row: pd.Index(df1.dta).get_loc(row.dtb), axis=1)