相关文章推荐
逃课的汉堡包  ·  中沙古雷乙烯项目主体工程全面动工 ...·  3 月前    · 
伤情的匕首  ·  designer ...·  4 月前    · 
另类的扁豆  ·  常州外事网·  1 年前    · 
坚强的机器猫  ·  遮天:叶凡差点与颜如玉结为双修道侣,这究竟是 ...·  2 年前    · 
健壮的李子  ·  国内首部古筝题材电影《幕后人》定档9月17日 ...·  2 年前    · 
Code  ›  Groupby,sum,reset index &保持第一位开发者社区
https://cloud.tencent.com/developer/ask/sof/106965327
俊逸的萝卜
1 年前
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
提问

问 Groupby,sum,reset index &保持第一位

Stack Overflow用户
提问于 2022-05-16 20:23:41
EN

我使用以下代码,我的目标是按2列分组(在其中的几十列中),然后保留所有其他列的第一个值,同时将另外两个列的值相加。不管我尝试了什么组合,它都不起作用。

所用代码:

代码语言: javascript
复制
df1 = df.groupby(['col_1', 'Col_2'], as_index = False)[['Age', 'Income']].apply(sum).first()

我所得到的错误如下所示,这使我相信这可以通过我使用的代码的一个稍微不同的版本来完成。

代码语言: javascript
复制
TypeError: first() missing 1 required positional argument: 'offset'

任何建议都将不胜感激!

1 84 0 票数 -1
EN
python
pandas
dataframe

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-16 21:16:07

您可以使用 agg 为每一列配置相应的函数。

代码语言: javascript
复制
group = ['col_1', 'col_2']
(df.groupby(group, as_index=False)
 .agg({
    **{x: 'first' for x in df.columns[~df.columns.isin(group)]}, # for all columns other than grouping column
    **{'Age': 'sum', 'Income': 'sum'} # Overwrite aggregation for specific columns
 
推荐文章
逃课的汉堡包  ·  中沙古雷乙烯项目主体工程全面动工 _ 重点工作 _ 福建省商务厅
3 月前
伤情的匕首  ·  designer mouse已配对了,但是没有反应,动不了 - Microsoft Q&A
4 月前
另类的扁豆  ·  常州外事网
1 年前
坚强的机器猫  ·  遮天:叶凡差点与颜如玉结为双修道侣,这究竟是怎么回事_段德_评论_好处
2 年前
健壮的李子  ·  国内首部古筝题材电影《幕后人》定档9月17日 为国乐发声_中华网
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号