Как группировать значения в pandas, но использовать списки в качестве индекса? - PullRequest
1 голос
/ 04 мая 2020

У меня есть датафрейм, и мне нужно сгруппировать его по фруктам и стоимости, но мне нужно проиндексировать его по спискам

  Date       ID     Age      Value        Fruits
  1.1.19     1      50         2            Apple
  2.1.19     1      50         5            Mango
  2.1.19     1      50         8            Orange
  1.1.19     2      75         6            Grapes
  4.1.19     3      20         1            Apple
  4.1.19     3      20         0            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']

Так что, если я использую это:

df_filter.groupby(['Fruits', 'Date'])['Value'].mean().unstack().reset_index().fillna(0).round()

, как можно будет использовать списки для re_index? Есть еще список значений, таких как Banana и Guava, поэтому я хотел бы, чтобы это было так же, как в index

1 Ответ

2 голосов
/ 04 мая 2020

Исправьте ваш код с помощью reindex

df.groupby(['Fruits', 'Date'])['Value'].mean().unstack(fill_value=0).\
    reindex(columns=date_list,index=fruits_list,fill_value=0).\
     round().reset_index()
Out[172]: 
Date  Fruits  1.1.19  2.1.19  3.1.19  4.1.19  5.1.19  6.1.19
0      Apple       2       0       0       1       0       0
1      Mango       0       5       0       0       0       0
2     Orange       0       8       0       0       0       0
3     Grapes       6       0       0       0       0       0
4     Banana       0       0       0       0       0       0
5      Guava       0       0       0       0       0       0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...