python - 将 ID 上的数据框的行组合起来以求和,但保留分类数据
问题描述
我正在清理数据并有一个问题。我有一个联系人数据集和一个客户数据集。我需要合并“ContactID”上的两个数据框。一些 ContactID 有多个帐户。因此,当我合并它们时,仍然有一些 ContactID 具有多行。我需要组合这些行,以便数字列加在一起,同时仍保留分类列。下面是一个例子:
当我合并时:
ContactID Value Type
1 800 A
1 70 A
2 100 B
3 300 A
4 200 C
5 500 B
5 600 B
合并时我需要数据的样子:
ContactID Value Type
1 870 A
2 100 B
3 300 A
4 200 C
5 1100 B
我试过这个:
fulldf.groupby(fulldf.ContactID).sum()
但是,我只得到一个包含数值的数据框。
解决方案
让我们检查dtype
并创建groupby
dict
out = df.groupby('ContactID').agg(df.dtypes.map({'O':'first'}).fillna('sum').to_dict())
ContactID Value Type
ContactID
1 2 870 A
2 2 100 B
3 3 300 A
4 4 200 C
5 10 1100 B
推荐阅读
- installation - 没有提出客户运输规则
- jquery-isotope - 同位素排序,取决于过滤器
- bloomberg - 通过 QuickFixJ 向 Bloomberg 发送消息时出错
- go - PATCH API 不适用于 Google Cloud Run 实例
- c# - 为什么我的 .exe 文件在我安装程序时不起作用?
- c - 用 C 语言编写一个程序,从文件中读取最多 100 个整数,其中文件中的第一个值是文件中后续值的数量
- flutter - 如何在颤振中实现即将到来的日期倒计时
- dataframe - 无法在 DataFrames.jl 中执行列转换
- python - 使用 PIP 安装 jupyterlab
- sharepoint-online - SpFx + Ribbon function call