Переименование значения, возвращаемого лямбда-функцией в агрегатной операции

#pandas #dataframe #data-analysis #exploratory-data-analysis

Вопрос:

Я хочу отобразить значение различных процентилей для каждой группы издателей в наборе данных. Я пытаюсь сделать следующее:

 vg.groupby(['Publisher']).agg({'Global_Sales':['mean','min','max','median',lambda x: x.quantile(0.5)]})
 

Несколько строк набора данных являются:

    Rank                       Name Platform    Year         Genre Publisher  
0     1                 Wii Sports      Wii  2006.0        Sports  Nintendo   
1     2          Super Mario Bros.      NES  1985.0      Platform  Nintendo   
2     3             Mario Kart Wii      Wii  2008.0        Racing  Nintendo   
3     4          Wii Sports Resort      Wii  2009.0        Sports  Nintendo   
4     5   Pokemon Red/Pokemon Blue       GB  1996.0  Role-Playing  Nintendo   
5     6                     Tetris       GB  1989.0        Puzzle  Nintendo   
6     7      New Super Mario Bros.       DS  2006.0      Platform  Nintendo   
7     8                   Wii Play      Wii  2006.0          Misc  Nintendo   
8     9  New Super Mario Bros. Wii      Wii  2009.0      Platform  Nintendo   
9    10                  Duck Hunt      NES  1984.0       Shooter  Nintendo   

   NA_Sales  EUR_Sales  JAP_Sales  IND_Sales  Global_Sales  
0     41.49      29.02       3.77       8.46         82.74  
1     29.08       3.58       6.81       0.77         40.24  
2     15.85      12.88       3.79       3.31         35.82  
3     15.75      11.01       3.28       2.96         33.00  
4     11.27       8.89      10.22       1.00         31.37  
5     23.20       2.26       4.22       0.58         30.26  
6     11.38       9.23       6.50       2.90         30.01  
7     14.03       9.20       2.93       2.85         29.02  
8     14.59       7.06       4.70       2.26         28.62  
9     26.93       0.63       0.28       0.47         28.31   
 

Теперь я хочу дать имя возвращаемому объекту <lambda_0>. Я не могу этого сделать. Пожалуйста, руководите, поскольку я новичок в Python и пытаюсь создать свои основы.

Комментарии:

1. @Cimbali Сделал все необходимое. Пожалуйста, дайте мне знать, если потребуются какие-либо другие изменения

2. Нет, все в порядке @PythonLearner, вопрос ясен. По другим вопросам вы, возможно, захотите предоставить желаемый результат и, возможно, то, что вы получаете вместо этого.

3. Привет! Работает ли какой-либо из приведенных ниже ответов? Если это так и если вы хотите, вы можете рассмотреть возможность принятия одного из них, чтобы сообщить другим, что проблема решена. Если нет, вы можете предоставить отзывы, чтобы их можно было улучшить (или вообще удалить).

4. @AnuragDabas принято

Ответ №1:

Из документа .agg() вы также можете напрямую указать имя столбца в agg() функции в качестве аргументов ключевого слова:

 >>> vg.groupby(['Publisher']).agg(
...     min=('Global_Sales', 'min'),
...     foo=('Global_Sales', lambda x: x.quantile(0.5)),
... )
              min     foo
Publisher                
Nintendo   36.939  30.815
 

Как вы можете видеть, аргументами для этих аргументов ключевых слов являются кортежи (столбец, функция агрегирования).