Я пытаюсь сравнить текст в столбце данных с существующим списком, а затем обновить новый столбец в кадре данных на основе сравнения. Текст в столбце dataframe является более сложным, чем в списке. Если текст фрейма данных содержит текст из списка, я бы хотел взять значение списка и обновить новый столбец фрейма данных. Я попытался for-l oop для этого, но я получаю ошибку, что мой итератор не является целым числом. Ниже приведены определения и мой код.
myDF - это фрейм данных. Продукт - это столбец, который я бы хотел оценить. Makelist - это список строк, с которыми я бы хотел сравнить myDF.Product. Если есть совпадение, я хочу обновить myDF.Brand.
Когда я запускаю следующее, я получаю ошибку, которая говорит, что я индексирую с недопустимым типом переменной.
import pandas as pd
myDF = pd.DataFrame({"Location": 'S1 S1 S1 S1 S1'.split(),
"Product": '12AB 34CD 56EF 78GH 90IJ'. split(),
"Brand": ""})
makelist = ['12A', '4CD', '56', '78G', '90IJ']
for items in myDF.Product:
for makes in makelist:
if makelist[makes] in(myDF.Product.iloc[items]):
myDF.Brand[items]=makelist[makes]
#expected output
Location Product Brand
0 S1 12AB 12A
1 S1 34CD 4CD
2 S1 56EF 56
3 S1 78GH 78G
4 S1 90IJ 90IJ