У меня есть таблица, состоящая из ИМЯ ПРОДУКТА и МАКЕРА. Некоторые ячейки производителя пустые, поэтому я хочу написать код для замены пустых ячеек в столбце создателя подстрокой в названиях продуктов. вот таблица для информации:
Чтобы определить подстроки, которые я хочу использовать, я использую библиотеку NLTK.
вот код, который я написал до сих пор:
import pandas as pd
import nltk
from nltk.probability import FreqDist
import pandas as pd
import numpy as np
a=('Nokia 3518','Nokia 3313','Samsung S9','Samsung S10','Samsung S4')
b=('Nokia','','','Samsung','')
df=pd.DataFrame({'Product Name':(a) , 'Maker':(b)})
df.replace('', np.nan, inplace=True)
result = [' '.join([row for row in df['Product Name']])]
result=str(result).replace("'",'')
tokens = nltk.word_tokenize(result)
#iam taking only words greater than 4 letters
longwords= [wrd for wrd in tokens if len(wrd)>4] #Words containing 3 letters or less will be
removed
print(longwords)
#keeping words only that occur more than once and putting it in a dataframe
fdist = FreqDist(longwords)
x=list(filter(lambda x: x[1]>1,fdist.items()))
print(x)
# putting the tokens in a dataframe (Nokia and Samsung)
dfb=pd.DataFrame(x)
print(dfb[0])
Пока я написал код для генерации токенов, но я не уверен, как двигаться дальше.
в конечном счете, я хотите добавить фрейм данных следующим образом, разрешив коду сопоставлять подстроки в имени продукта с элементами в фрейме данных токенов (dfb) и добавляя соответствующий столбец создателя: