gpt4 book ai didi

python - Groupby Pandas DataFrame 并计算一列的平均值和标准偏差,并将标准添加为带有 reset_index 的新列

转载 作者:IT老高 更新时间:2023-10-28 21:10:02 35 4
gpt4 key购买 nike

我有一个如下所示的 Pandas DataFrame:

   a      b      c      d
0 Apple 3 5 7
1 Banana 4 4 8
2 Cherry 7 1 3
3 Apple 3 4 7

我想按“a”列对行进行分组,同时将“c”列中的值替换为分组行中值的平均值,并添加另一列,其平均值为“c”列中值的标准偏差计算出来的。对于所有被分组的行,“b”或“d”列中的值是恒定的。因此,所需的输出将是:

   a      b      c      d      e
0 Apple 3 4.5 7 0.707107
1 Banana 4 4 8 0
2 Cherry 7 1 3 0

实现这一目标的最佳方法是什么?

最佳答案

您可以使用 groupby-agg operation :

In [38]: result = df.groupby(['a'], as_index=False).agg(
{'c':['mean','std'],'b':'first', 'd':'first'})

然后重命名列并重新排序:

In [39]: result.columns = ['a','c','e','b','d']

In [40]: result.reindex(columns=sorted(result.columns))
Out[40]:
a b c d e
0 Apple 3 4.5 7 0.707107
1 Banana 4 4.0 8 NaN
2 Cherry 7 1.0 3 NaN

Pandas 默认计算样本标准。计算总体标准:

def pop_std(x):
return x.std(ddof=0)

result = df.groupby(['a'], as_index=False).agg({'c':['mean',pop_std],'b':'first', 'd':'first'})

result.columns = ['a','c','e','b','d']
result.reindex(columns=sorted(result.columns))

产量

        a  b    c  d    e
0 Apple 3 4.5 7 0.5
1 Banana 4 4.0 8 0.0
2 Cherry 7 1.0 3 0.0

关于python - Groupby Pandas DataFrame 并计算一列的平均值和标准偏差,并将标准添加为带有 reset_index 的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26599347/

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