gpt4 book ai didi

Python Pandas - 使用两列的标准计算平均值

转载 作者:行者123 更新时间:2023-11-28 22:17:06 25 4
gpt4 key购买 nike

我正在尝试使用其他两列的选择标准来计算 Pandas 数据框列的平均值。在下面的代码中,有一个“Trace”和“Sample”列用于选择标准,而“Value”列中的数字将用于计算。我想按“Trace”数字分组,只取“Sample”数字 3、4 和 5 的平均值。然后,我想在原始数据框“df”中创建一个新列并放置计算出的平均值在所有对应于正确“Trace”编号的行中。

d = {"Trace": [1,1,1,1,1,2,2,2,2,2], "Sample": [1,2,3,4,5,1,2,3,4,5], "Value": [2,3,5,6,1,8,9,5,4,3]}

有什么想法吗?

谢谢!

最佳答案

你可以试试这个,先过滤你的数据框,然后用均值分组,然后在'Trace'上连接回原始数据框(这是数据框之间的公共(public)列名称是 reset_index 结果分组):

df[df['Sample'].isin([3,4,5])].groupby('Trace')['Value'].mean()\
.rename('Avg Value').reset_index().merge(df)

输出:

   Trace  Avg Value  Sample  Value
0 1 4 1 2
1 1 4 2 3
2 1 4 3 5
3 1 4 4 6
4 1 4 5 1
5 2 4 1 8
6 2 4 2 9
7 2 4 3 5
8 2 4 4 4
9 2 4 5 3

df.groupby('Trace')\
.apply(lambda x: x.loc[x['Sample'].isin([3,4,5]),'Value'].mean())\
.rename('Avg Value').reset_index().merge(df)

输出:

   Trace  Avg Value  Sample  Value
0 1 4.0 1 2
1 1 4.0 2 3
2 1 4.0 3 5
3 1 4.0 4 6
4 1 4.0 5 1
5 2 4.0 1 8
6 2 4.0 2 9
7 2 4.0 3 5
8 2 4.0 4 4
9 2 4.0 5 3

关于Python Pandas - 使用两列的标准计算平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51622345/

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