Назначьте новый столбец для классификации значений - PullRequest
0 голосов
/ 05 ноября 2018

Я импортировал фрейм данных из Excel, используя

data = pd.read_csv('transaction.csv')

и иметь фрейм данных, который выглядит следующим образом

         Date      Time  Transaction           Item
0  2016-10-30  09:58:11            1          water
1  2016-10-30  10:05:34            2   french fries
2  2016-10-30  10:05:34            2       Icecream
3  2016-10-30  10:07:57            3      chocolate
4  2016-10-30  10:07:57            3        Cookies

Я создал словарь, чтобы присвоить каждому предмету категорию продуктов питания или напитков, например:

Food = ('french fries', 'Icecream', 'chocolate', 'Cookies')
Drink = ('water')
Category = {Food : "Food", Drink : "Drink"}

Я хочу присвоить категории другому столбцу, но он отображается как NaN. Я использовал этот код:

data['Classification'] = data['Item'].map(Category)


         Date      Time  Transaction           Item Food or Drink
0  2016-10-30  09:58:11            1          water           NaN
1  2016-10-30  10:05:34            2   french fries           NaN
2  2016-10-30  10:05:34            2       icecream           NaN
3  2016-10-30  10:07:57            3      chocolate           NaN
4  2016-10-30  10:07:57            3        cookies           NaN

Как лучше всего это исправить?

1 Ответ

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

Создать словарь для каждой категории с помощью dict.fromkeys и , объединить их вместе :

Food = ('french fries', 'Icecream', 'chocolate', 'Cookies')
Drink = ('water',)

Category = {**dict.fromkeys(Food, "Food"), **dict.fromkeys(Drink, "Drink")}
print (Category)
{'french fries': 'Food', 'Icecream': 'Food', 
 'chocolate': 'Food', 'Cookies': 'Food', 'water': 'Drink'}

data['Classification'] = data['Item'].map(Category)
print (data)
         Date      Time  Transaction          Item Classification
0  2016-10-30  09:58:11            1         water          Drink
1  2016-10-30  10:05:34            2  french fries           Food
2  2016-10-30  10:05:34            2      Icecream           Food
3  2016-10-30  10:07:57            3     chocolate           Food
4  2016-10-30  10:07:57            3       Cookies           Food
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...