python-3.x - Pandas 带有 Group By 的多重条件均值
问题描述
python 和 pandas 的新手。我有一个带有客户数据列表的 pandas DataFrame,其中包括客户名称、报告月份和绩效。我正在尝试为每个客户获得第一次录制的性能
CustomerName ReportingMonth Performance
0 7CGC 2019-12-01 1.175000
1 7CGC 2020-01-01 1.125000
2 ACC 2019-11-01 1.216802
3 ACBH 2019-05-01 0.916667
4 ACBH 2019-06-01 0.893333
5 AKC 2019-10-01 4.163636
6 AKC 2019-11-01 3.915215
期望的输出
CustomerName ReportingMonth Performance
0 7CGC 2019-12-01 1.175000
1 ACC 2019-11-01 1.216802
2 ACBH 2019-05-01 0.916667
3 AKC 2019-10-01 4.163636
解决方案
DataFrame.sort_values
与GroupBy.first
或一起使用DataFrame.drop_duplicates
:
df.sort_values('ReportingMonth').groupby('CustomerName', as_index=False).first()
或者
new_df = df.sort_values('ReportingMonth').drop_duplicates('CustomerName',
keep = 'first')
print(new_df)
输出
CustomerName ReportingMonth Performance
3 ACBH 2019-05-01 0.916667
5 AKC 2019-10-01 4.163636
2 ACC 2019-11-01 1.216802
0 7CGC 2019-12-01 1.175000
如果它已经排序,则不需要再次排序
推荐阅读
- email - 欺骗电子邮件在线服务:它是如何工作的?即 https://emkei.cz/
- angular - 为什么我的 Angular 应用在 Github Pages 上是空白的?
- azure - Azure 搜索索引器每次都会索引整个 Cosmos db 数据源
- inno-setup - 解析相对于另一个文件夹中包含的 .iss 文件的文件路径
- postgresql - Postgresql 使用 CTE 删除行删除所有行
- python - 使用 Dask 下载、处理并保存到 csv
- html - 为 Outlook 格式化 html 电子邮件签名
- java - 有没有办法挂钩对 @Controller 方法的每次调用或对 Spring MVC 调度程序 servlet 的每次调用?
- codeigniter - 使用 codeigniter 构建工作队列
- r - 在R中的列表中获取2个变量的平均值