python - 根据列表对列进行分类并与结果聚合
问题描述
假设我有一个如下数据框:
d = {'name': ['spain', 'greece','belgium','germany','italy'], 'davalue': [3, 4, 6, 9, 3]}
df = pd.DataFrame(data=d)
index name davalue
0 spain 3
1 greece 4
2 belgium 6
3 germany 9
4 italy 3
我想根据名称列中的字符串列表进行聚合和求和。例如,我可能有:southern=['spain', 'greece', 'italy']
和northern=['belgium','germany']
。
我的目标是通过使用聚合sum
,并获得:
index name davalue
0 southern 10
1 northen 15
在哪里10=3+4+3
和15=6+9
我想象过这样的事情:
df.groupby(by=[['spain','greece','italy'],['belgium','germany']])
可能存在。文档说_
标签或标签列表可以通过 self 中的列传递给 group
但我不确定我是否理解这在语法方面的含义。
解决方案
我会建立一个字典和地图:
d = {v:'southern' for v in southern}
d.update({v:'northern' for v in northern})
df['davalue'].groupby(df['name'].map(d)).sum()
输出:
name
northern 15
southern 10
Name: davalue, dtype: int64
推荐阅读
- c++ - Opencv4 使用 pkg-config 给出未定义的参考错误
- java - 仅为一组实体配置 Hibernate 实体侦听器
- excel - Excel Services REST API 的 URI
- reactjs - React Js Data Table "No data available in table"
- ruby-on-rails - what to check if an attribute must be present in request payload of Json
- python - 文本文件中值的 Python 拆分函数
- javascript - React Js - get json array Image to JSX page of react dynamically
- java - How to count number of requests in spring boot app?
- java - how can i remove item from my collection in java
- firebase - Flutter Firebase Filestore - 投射返回的列表
进入列表