假设我有一个数据帧,如下所示:
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
我想根据name列中的字符串列表进行聚合和求和。例如,我可能有: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']])
可能存在。这个docs说
A label or list of labels may be passed to group by the columns in self
但我不确定我是否理解这在语法方面意味着什么
一种方法是使用^{} 并将结果用作grouper:
您将创建一个新列,以后可以通过该列进行grouppy
我会建立一个字典和地图:
输出:
相关问题 更多 >
编程相关推荐