首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python:熊猫群&应用优化

python:熊猫群&应用优化
EN

Stack Overflow用户
提问于 2017-06-14 12:34:50
回答 1查看 380关注 0票数 1

我有以下代码:

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-14 12:51:04

我想你可以先过滤:

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44544967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档