Обработка блока категорических данных и числовых данных вместе - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть Dataframe, имеющий 3 элемента Product_detail, S.I_Units и Value.

df4 = pd.DataFrame({'Product_detail': ['XYZ', 'ABC', 'DEF', 'GHI'],'D': ['g', 'Kg', 'l', 'ml'],'F': ['500', '1', '1', '1000']} )

Мой Product_detail Столбец, содержащий текст, поэтому я преобразовал его в TfidfVectorizer

У меня естьвычислить матрицу сходства, но я не понимаю, как использовать S.I_units столбец вместе с Value столбцом. Например, скажем, какой-то ряд DataFrame похож на ('Amul Butter', 'g', '200'), ('Amul Butter', 'g', '100'), ('Amul Butter', 'g', '300'), ('Amul Milk', 'ml', '1000').Я хочу top 'n' Подобный продукт для масла амул.

1 Ответ

0 голосов
/ 29 ноября 2018

Я не уверен, каков ваш ожидаемый результат, но вы можете сделать что-то с fuzzywuzzy, что соответствует процентному соотношению:

давайте предположим, что это df:

df4 = pd.DataFrame({'Product_detail': ['butter', 'amul butter', 'amul milk', 'milk'],'D': ['g', 'Kg', 'l', 'ml'],'F': ['500', '1', '1', '1000']})


Product_detail  D   F
0   butter      g   500
1   amul butter Kg  1
2   amul milk   l   1
3   milk        ml  1000

, тогда выможете создать список вариантов и использовать process.extract ()

from fuzzywuzzy import fuzz, process

# create a list of choices from df['Product_detail']
choices = list(df4['Product_detail'].values)

# use fuzzywuzzy's process.extract()
# limit is the number of returned results
process.extract('amul butter', choices, limit=3)

out:

[('amul butter', 100), ('butter', 90), ('amul milk', 59)]

, если вы не хотите, чтобы процент совпадал, тогда сделайте понимание списка:

result = process.extract('amul butter', choices, limit=3)

# list comprehension to remove the percent
[x[0] for x in result]

out:

['amul butter', 'butter', 'amul milk']

, если вы хотите вернуть свой df:

# list comprehension to remove the percent
result_list = [x[0] for x in result]

# if you want to return your df
df4[df4['Product_detail'].isin(result_list)]

    Product_detail  D   F
0   butter          g   500
1   amul butter     Kg  1
2   amul milk       l   1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...