Pandas сравнивает два столбца, соответствующие тексту, и печатает полную строку соответствия

#python #pandas

#python #pandas

Вопрос:

Я хочу взять хэш из одного df и найти этот хэш в другом столбце df.hash и распечатать полную строку совпадений.

df1:
hash
11dd7da7faa0130dac2560930e90c8b1
11dd7da7faa0130dac2560930e90c8b2
11dd7da7faa0130dac2560930e90c8b3
11dd7da7faa0130dac2560930e90c8b4
df2:
filepath hash
C:windows 11dd7da7faa0130dac2560930e90c8b5
C:Temp 11dd7da7faa0130dac2560930e90c8b6
C:foundya 11dd7da7faa0130dac2560930e90c8b1
C:Windowstemp 11dd7da7faa0130dac2560930e90c8b2

Ожидаемый результат:
filepath hash
C:foundya 11dd7da7faa0130dac2560930e90c8b1
C:Windowstemp 11dd7da7faa0130dac2560930e90c8b2
неудачные попытки:
print(df2[['hash','filepath']][~df2['hash'].isin(df1)])
print(df2[['hash','filepath']][~df1.isin(df2['hash'])])

Ответ №1:

как насчет простого слияния здесь?

 df1.merge(df2, on ='hash', how ='inner')
  

Комментарии:

1. Если бы это было усилено, скажем, 44 миллионами строк, было бы это эффективно? Это отлично работает, я просто подумал, что слияние потребует немного больше ресурсов. Большое спасибо.

2. merge очень эффективно, не волнуйтесь.