Pandas | Сравнение двух файлов CSV и возврат совпадений

#python #python-3.x #pandas

#python #python-3.x #pandas

Вопрос:

итак, в основном я пытаюсь сравнить два файла CSV и вернуть совпадения.

CSV1: содержит список ключевых слов.

 keywords

Apple
Banana
Orange
  

CSV2: Содержит случайное содержимое.

 content

I like Apples
Banana is my favorite Fruit
Strawberry Smoothies are the best
  

Если я включу ключевые слова в код следующим образом… Я получаю достойный результат.

 import pandas as pd

df = pd.read_csv('CSV1.csv')
result = df[df.content.str.contains('Apple|Banana|Orange')]
  

Поскольку ключевое слово-file становится все больше. Я ищу способ извлечь ключевые слова из csv и проверить совпадения вместо того, чтобы вводить все ключевые слова в код.

Ответ №1:

Вы могли бы сделать это с помощью функции pandas isin() (https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas .DataFrame.isin.html)

Псевдокод будет:

 # put the csv1's list to lower case
list_csv1 = [i.lower() for i in list_csv1]

# use the isin() function
# again, put the content to lower case
result = df[df.content.str.lower().isin(list_csv1)]
  

Перевод всего в нижний регистр не является обязательным, но это хороший способ нормализовать ваши данные и предотвратить пропуски.