python - 将第一个出现列添加到分组数据框
问题描述
我有一个这样的数据框-
df=pd.DataFrame({'DT':[1,1,1,2,2,2,1,1],'city':['A','A','A','A','A','A','B','B'],'O':[22,33,44,55,66,77,88,99]})
现在,对于每个独特的城市,我想将首先出现在 Dt 列中的 O 列中的所有值相加。输出-
city O
0 A 77
1 B 88
解释 - 对于城市“A”,第一个唯一出现的 DT 是 1,所以我们添加相应的 O 列值,即 22。接下来对于同一个城市“A”,DT 列中第一个出现的 2 是第 4 行,所以我们添加其对应的O列== 22+55=77。同样对于城市 B,因为 DT 列中只有 1,所以 O 将是 88。
解决方案
您还可以提取第一行并与level
:
df.groupby(['DT','city'])['O'].first().sum(level=1)
输出:
city
A 77
B 88
Name: O, dtype: int64
推荐阅读
- angular7 - 我们如何在两个组件之间共享数据 - 两者都是完全独立的组件。(不属于亲子关系)
- arrays - 如何有效地计算数组不同元素频率的乘积?
- java - 面临获取数据的问题
- sql - Group By 子句中检索到的每个类别的总和
- mysql - 将a列的值更新为与python中特定id对应的b列
- php - 权限系统,$_SESSION 和数据库存储哪个更好?
- c++ - Bjarne Stroustrup 在他的常见问题解答中对“基础库”是什么意思?
- asp.net-mvc - 通过 .net MVC 调用 Go 命令
- python - windows 10 python shell命令安装返回错误
- report - 如何从已发布的 Power BI 报表中导出数据?