首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从原始的DataFrame - Python中向按DataFrame分组的列添加列

如何从原始的DataFrame - Python中向按DataFrame分组的列添加列
EN

Stack Overflow用户
提问于 2022-09-26 15:26:07
回答 1查看 27关注 0票数 1

我有一个DataFrame:

代码语言:javascript
复制
                       Name    Year Publisher  Global_Sales
0                Wii Sports  2006.0  Nintendo         82.74
1         Super Mario Bros.  1985.0  Nintendo         40.24
2            Mario Kart Wii  2008.0  Nintendo         35.82
3         Wii Sports Resort  2009.0  Nintendo         33.00
4  Pokemon Red/Pokemon Blue  1996.0  Nintendo         31.37

我想按年将其分组,并查看每年最大的Global_Sales:

代码语言:javascript
复制
comp_group=df_comparation.groupby('Year')['Global_Sales'].max()

我获得:

代码语言:javascript
复制
Year
1980.0     4.31
1981.0     4.50
1982.0     7.81
1983.0     3.20
1984.0    28.31
1985.0    40.24
1986.0     6.51
1987.0     4.38
1988.0    17.28
1989.0    30.26
1990.0    20.61

现在,我想知道是哪个发布者创建了max Global_Sales,并将其添加为一列:

代码语言:javascript
复制
Year     Global_Sales      Publisher
1980.0     4.31            Nintendo
1981.0     4.50            EA Sports
1982.0     7.81              ...
1983.0     3.20              ...
1984.0    28.31              ...  
1985.0    40.24              ...
1986.0     6.51              ...  
1987.0     4.38              ...
1988.0    17.28              ...
1989.0    30.26              ...
1990.0    20.61              ...

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-27 03:59:04

Year对数据进行分组,然后应用一个函数以获得最大Global_Sales的Global_Sales和Publisher:

代码语言:javascript
复制
(df
 .groupby('Year')
 .apply(lambda x: x.loc[x['Global_Sales'].idxmax(), ['Global_Sales', 'Publisher']])
 )

        Global_Sales Publisher
Year                          
1985.0         40.24  Nintendo
1996.0         31.37  Nintendo
2006.0         82.74  Nintendo
2008.0         35.82  Nintendo
2009.0         33.00  Nintendo
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73856405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档