gpt4 book ai didi

python:Pandas groupby 和应用优化

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

我有以下代码行:

df.groupby([col1]).apply( lambda x: x.loc[x[col2] == val, col3].sum()/x.loc[x[col2] == val_0 , col3].sum());

我的 df 较大(约 300000 行),groupby 生成约 2300 个组。结果,执行时间相当长......

关于如何优化它有什么想法吗?

提前谢谢您!

Python版本:3.6

最佳答案

我认为你可以先过滤:

df = pd.DataFrame({'col1':list('aaaabbbb'),
'col2':[2,4,6,3,2,4,1,2],
'col3':[1,2,1,2,1,2,1,2]})
print (df)
col1 col2 col3
0 a 2 1
1 a 4 2
2 a 6 1
3 a 3 2
4 b 2 1
5 b 4 2
6 b 1 1
7 b 2 2

val = 4
val_0 = 2

a = df[df['col2'] == val]
b = df[df['col2'] == val_0]

c = a.groupby('col1')['col3'].sum() / b.groupby('col1')['col3'].sum()
print (c)
col1
a 2.000000
b 0.666667
Name: col3, dtype: float64

关于python:Pandas groupby 和应用优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44544967/

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