У меня есть такой фрейм данных:
Date ID Age Gender Fruits
1.1.19 1 50 F Apple
2.1.19 1 50 F Mango
2.1.19 1 50 F Orange
1.1.19 2 75 M Grapes
4.1.19 3 20 M Apple
4.1.19 3 20 M Grapes
например, у меня есть два списка:
fruits_list = ['Apple', 'Mango', 'Orange', 'Grapes', 'Banana', 'Guava']
date_list = ['1.1.19', '2.1.19', '3.1.19', '4.1.19', '5.1.19', '6.1.19']
Я хочу преобразовать столбец Fruit в дополнительные столбцы, которые дают двоичную информацию yes / нет для каждого человека. И пропущенная дата должна быть NaN. с помощью этого
pd.get_dummies(df, columns=['Fruits'], prefix='', prefix_sep='').groupby('Date').max()
я получу это, но мне нужны все элементы, которые есть в fruit_list и date_list
Date ID Age Gender Apple Mango Orange Grapes
1.1.19 1 50 F 1 0 0 0
1.1.19 2 75 M 0 0 0 1
2.1.19 1 50 F 0 1 1 0
3.1.19 NaN NaN NaN NaN NaN NaN NaN
4.1.19 3 20 M 1 0 0 1
Желаемый вывод будет таким:
Date ID Age Gender Apple Mango Orange Grapes Banana Guava sum
1.1.19 1 50 F 1 0 0 0 0 0 1
1.1.19 2 75 M 0 0 0 1 0 0 1
2.1.19 1 50 F 0 1 1 0 0 0 2
3.1.19 NaN NaN NaN 0 0 0 0 0 0 0
4.1.19 3 20 M 1 0 0 1 0 0 2
5.1.19 NaN NaN NaN 0 0 0 0 0 0 0
6.1.19 NaN NaN NaN 0 0 0 0 0 0 0