gpt4 book ai didi

python - 如何使用 pandas groupby 函数在 numpy 数组上应用函数

转载 作者:太空宇宙 更新时间:2023-11-03 15:13:28 24 4
gpt4 key购买 nike

我对 pandas 很陌生,所以我希望这会有一个简单的答案(我也很感激所有指向数据帧设置的指针)

假设我有以下 DataFrame:

D = pd.DataFrame({ i:{ "name":str(i),
"vector": np.arange(i,i+10),
"sq":i**2,
"gp":i%3 } for i in range(10) }).T

gp name sq vector
0 0 0 0 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
1 1 1 1 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2 2 2 4 [2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
3 0 3 9 [3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
4 1 4 16 [4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
5 2 5 25 [5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
6 0 6 36 [6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
7 1 7 49 [7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
8 2 8 64 [8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
9 0 9 81 [9, 10, 11, 12, 13, 14, 15, 16, 17, 18]

现在我想按“gp”分组并得到“向量”的平均值

我试过了

D.groupby('gp').mean()

甚至

D.groupby('gp').agg( np.mean )

但我得到一个错误,没有要聚合的“数字类型”。那么 np.arrays 在 pandas 中不起作用吗?

最佳答案

对我来说它有效:

D.groupby('gp').apply(lambda x: x.vector.mean().mean())

我取了两次平均值,因为您想要矢量平均值的组平均值(不是吗?)。

Out[98]: 
gp
0 9.0
1 8.5
2 9.5
dtype: float64

如果你想要均值向量,只需取均值一次。

关于python - 如何使用 pandas groupby 函数在 numpy 数组上应用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23884113/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com