Определение того, содержит ли dataframe определенные ключевые слова строки, и получение ее местоположения

В основном, предположим, что мы получили ввод для: «Crayola Blue Short Crayons». Я хочу, чтобы программа просматривала файл csv и находила первую / лучшую ячейку, которая соответствует строке. Так, например, это будет «Синий короткий мелок». Затем он получит код детали, который находится в столбце рядом с ним.

if (certain keywords of a string is found in the DataFrame/CSV file):
     print('FOUND')
     val = df2.loc[df2.Dsc1...] <-- Get location of where the keywords are found in the DataFrame. But the column next to it
else:
     val = "N\A"

Я пробовал использовать find, contain ... Например:

if df.Dsc1.contain(selectedtext):
      print('FOUND')

Но я всегда получаю одну и ту же ошибку:

AttributeError: 'Series' object has no attribute 'contain'

Любая помощь будет оценена по достоинству. Спасибо,

Редактировать:

Я нашел этот фрагмент кода:

df[df['Dsc1'].str.contains(selectedtext)].

Однако я хочу сделать наоборот. Этот код извлекает индекс только в том случае, если DataFrame содержит выделенный текст. Но поскольку я хочу, чтобы в DataFrame были ключевые слова, а в выделенном тексте были большие фразы

DataFrame:

  1. красный
  2. Синий
  3. ...

Выбранный текст:

  • Большой синий мелок Crayola
  • ...

Я хочу, чтобы код сравнивал выделенный текст и DataFrame, чтобы увидеть, что СИНИЙ похож на оба экземпляра. Затем он получит индекс. Так что я думал о чем-то вроде этого ...

selectedtext.str.contains(df[df['Dsc1']])

Однако этот код явно не работает, и я получаю эти ошибки.

AttributeError: 'str' object has no attribute 'str'

И:

AttributeError: 'str' object has no attribute 'contains'

Когда я не использую .str.

Редактировать # 2: С использованием:

selectedtext.__contains__(df[df['Dsc1']])

Я получил:

"['Crayon'] not in index"

его pandas.Series.str.contains

piRSquared 10.08.2018 17:26

Не сработало. Получена эта ошибка: TypeError: len () объекта без размера. Кроме того, выделенный текст будет полной фразой, в то время как DataFrame должен содержать только одно или два слова. Таким образом, .contains не будет работать в этом случае. Тем не менее, спасибо за помощь

A.J 12.08.2018 09:14
0
2
3 096
0

Другие вопросы по теме