【发布时间】:2026-01-29 11:25:01
【问题描述】:
假设我有一个数据框
A B C D
2019-01-01 1 10 100 12
2019-01-02 2 20 200 23
2019-01-03 3 30 300 34
还有一个用于对列进行分组的数组
array([0, 1, 0, 2])
我希望按数组(在列轴上)对数据框进行分组,应用一个函数,然后返回一个具有列数长度的系列,其中包含每列上应用函数的结果。
因此,对于上述情况(应用函数获取组的总和),想要输出:
A 606
B 60
C 606
D 69
dtype: int64
我的最佳尝试:
func = lambda a: np.full(a.shape[1], np.sum(a.values))
df.groupby(groups, axis=1).apply(func)
0 [606, 606]
1 [60]
2 [69]
dtype: object
(在本例中,应用函数在组内返回相等的值,但不能保证真实情况)
我看不到如何使用 pandas 分组语法来做到这一点,除非我遗漏了什么。谁能帮忙,谢谢!
【问题讨论】:
-
该示例所需的输出是什么?