Создайте столбец данных, сопоставив его со словарем, который содержит подмножество строковых значений в другом столбце.как его ключ - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть словарь магазинов, который содержит названия торговых точек в качестве ключей и тип торговой точки в качестве значения

stores = {'McDonalds':'Fast food','African and Eastern Beverage':'Alcohol','Baskin Robbins': 'ice Cream'}

У меня есть информационный фрейм pandas, который содержит название торговой точки вместе с местоположением филиала (в столбце Merchant), некоторые из которых имеют значения NaN для MerchantType

Мне нужно заполнить столбец MerchantType тех строк, которые имеют значения NaN и соответствуют типу продавца, используя словарь магазинов, имея в виду, чтоВ словарях магазинов нет ключей Location (Абу-Даби, Дубай, Вашингтон и т. д.).

print (df)    
                                     Merchant MerchantType
index                                                     
0                         McDonalds Abu Dhabi          NaN
1                               Dunkin Donuts       Sweets
2          African and Eastern Beverage Dubai          NaN
3                                 Burger King    Fast Food
4      African and Eastern Beverage Abu Dhabi          NaN
5                                 Burger King    Fast Food
6                   Baskin Robbins Washington          NaN

Какой самый эффективный способ добиться этого?

1 Ответ

0 голосов
/ 10 февраля 2019

Цикл в словаре и установка только совпадающих значений на str.contains и пропущенных значений в столбце MerchantType:

mask = df['MerchantType'].isnull()
for k, v in stores.items():
    df.loc[df['Merchant'].str.contains(k, regex=False) & mask, 'MerchantType'] = v

print (df)
                                     Merchant MerchantType
index                                                     
0                         McDonalds Abu Dhabi    Fast food
1                               Dunkin Donuts       Sweets
2          African and Eastern Beverage Dubai      Alcohol
3                                 Burger King    Fast Food
4      African and Eastern Beverage Abu Dhabi      Alcohol
5                                 Burger King    Fast Food
6                   Baskin Robbins Washington    ice Cream
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...