Сравните два столбца pandas и индекс возврата первого, который соответствует элементу второго - PullRequest
1 голос
/ 24 февраля 2020

Допустим, у нас есть 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 ]

2 голосов
/ 24 февраля 2020

df1.dta уникален, поэтому просто использовать get_indexer

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

Out[1219]: array([1, 1, 1, 2], dtype=int32)
0 голосов
/ 24 февраля 2020

Вы можете использовать pandas 'Index и get_loc:

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