В основном, предположим, что мы получили ввод для: «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:
Выбранный текст:
Я хочу, чтобы код сравнивал выделенный текст и 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"
Не сработало. Получена эта ошибка: TypeError: len () объекта без размера. Кроме того, выделенный текст будет полной фразой, в то время как DataFrame должен содержать только одно или два слова. Таким образом, .contains не будет работать в этом случае. Тем не менее, спасибо за помощь
его
pandas.Series.str.contains