python - 如何按第一次出现作为主要的熊猫分组
问题描述
我在下面有 csv
ID,PR_No,PMO,PRO,REV,COST
111,111,AB,MA,2575,2575
111,111,LL,NN,-1137,-1137
112,112,CD,KB,1134,3334
111,111,ZZ,YY,100,100
我的预期输出如下
ID,PR_No,PMO,PRO,REV,COST
111,111,AB,MA,1538,1538
112,112,CD,KB,1134,3334
对于 ID 111,有很多 PMO,PRO,但在输出中我们只需要首先粘贴 AB,MA 出现。
下面的代码需要修改什么
df_n = df.groupby(['ID','PR_No','PMO','PRO'])['REV','COST'].sum()
还是我需要 df.groupby(['ID','PR_No'])['REV','COST'].sum() 稍后进行映射?
解决方案
GroupBy.agg
由前 2 列使用,用于GroupBy.first
接下来的 2 列:
d = {'PMO':'first','PRO':'first','REV':'sum','COST':'sum'}
df_n = df.groupby(['ID','PR_No'], as_index=False).agg(d)
print (df_n)
ID PR_No PMO PRO REV COST
0 111 111 AB MA 1538 1538
1 112 112 CD KB 1134 3334
推荐阅读
- javascript - 如何用javascript删除或替换文本中的unicode字符?
- git - 首先推送到 github repo 生成 765 个未跟踪或修改的文件
- python - 正则表达式匹配年份 YYYY 但最多 2020
- python - 如果没有在模板中显示,如何修复分页
- python - 如何遍历文本文件并将值分配给 Python3 中的字典?
- arrays - 从文件(作为数组)行中读取数据并进行比较
- perl - 包含 alpha 字符的字符串如何在数字上等同于 Perl 中的数字?
- python - ChromeDriver:TypeError:“模块”对象不可调用
- python - 如何在python中比较日期?我有月份日期年份格式并想与当前日期(7 天内)进行比较
- machine-learning - 神经网络 - 具有空输入的额外类的分类器