gpt4 book ai didi

python - Pandas - 计算相同数据的平均值

转载 作者:行者123 更新时间:2023-12-01 22:55:25 27 4
gpt4 key购买 nike

我有一个 pandas df,它有一个项目编号列表,然后旁边有一个数字。我想以某种方式获得所有相同项目编号及其旁边的编号的平均值。

这是 DataFrame 的一部分:

Item ID        Time
X32TR2639 7.142857
X32TR2639 7.142857
X36SL7708 16.714286
X36TA0029 16.714286
X36TR3016 16.714286

期望的输出:

Item ID        Average Time:
X32TR2639 7.142857
X36SL7708 16.714286
X36TA0029 16.714286
X36TR3016 16.714286

我希望每个项目 ID 都有一个平均时间,但是如果该项目 ID 有多个副本,则取它们的平均值

这只是数据框的一小部分。如您所见,前两个是相同的。我想计算所有这些的平均值。因此,如果它相同,则使用所有这些数字并获得该平均值。因此脚本会查找所有项目编号 X32TR2639 并获取其旁边的数字,然后获取该平均值。

最佳答案

我会提出一个简单的 groupby.mean 和一个 reset_index

data = {"Item ID":['X32TR2639','X32TR2639','X36SL7708','X36TA0029','X36TR3016'],'time':[7.142857,7.142857,16.714286,16.714286,16.714286]}

df = pd.DataFrame(data)

df.groupby('Item ID').mean().reset_index()

Item ID time
0 X32TR2639 7.142857
1 X36SL7708 16.714286
2 X36TA0029 16.714286
3 X36TR3016 16.714286

额外

我已经尝试了 50k 的数据,这是时间性能。

df

ID time
0 X32TR2639 0.837810
1 X32TR2639 0.855781
2 X36SL7708 0.322786
3 X36TA0029 0.441353
4 X36TR3016 0.254487
... ...
49995 X32TR2639 0.885251
49996 X32TR2639 0.315009
49997 X36SL7708 0.298589
49998 X36TA0029 0.229855
49999 X36TR3016 0.933437

[50000 rows x 2 columns]

%timeit df.groupby('ID').mean().reset_index()
4.76 ms ± 73.7 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

这是在具有重复项的 50k 数据帧上执行 groupby.mean 后的输出数据帧。

df.groupby('ID').mean().reset_index()

ID time
0 X32TR2639 0.493729
1 X36SL7708 0.500936
2 X36TA0029 0.501064
3 X36TR3016 0.492773

关于python - Pandas - 计算相同数据的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73390091/

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