首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么group_by -> filter ->汇总在R中比pandas快?

为什么group_by -> filter ->汇总在R中比pandas快?
EN

Stack Overflow用户
提问于 2019-06-03 06:30:36
回答 1查看 324关注 0票数 1

我正在将我们的一些旧代码从R转换到python。在这个过程中,我发现熊猫比R慢一点。我有兴趣知道我是否做错了什么。

R代码(在我的系统上大约需要2毫秒):

代码语言:javascript
复制
df = data.frame(col_a = sample(letters[1:3],20,T),
           col_b = sample(1:2,20,T),
             col_c = sample(letters[1:2],20,T),
             col_d = sample(c(4,2),20,T)
             )

microbenchmark::microbenchmark(
a = df %>% 
  group_by(col_a, col_b) %>% 
  summarise(
    a = sum(col_c == 'a'),
    b = sum(col_c == 'b'),
    c = a/b
  ) %>% 
  ungroup()
)

pandas (在我的系统上运行10ms ):

代码语言:javascript
复制
df = pd.DataFrame({
    'col_a': np.random.choice(['a','b','c'],N),
    'col_b': np.random.choice([1,2],N),
    'col_c': np.random.choice(['a', 'b'],N),
    'col_d': np.random.choice(['4', '2'],N),
})
%%timeit 
df1 = df.groupby(['col_a', 'col_b']).agg({
    'col_c':[
        ('a',lambda x: (x=='a').sum()),
        ('b',lambda x: (x=='b').sum())
    ]}).reset_index()
df1['rat'] = df1.col_c.a/df1.col_c.b
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56419400

复制
相关文章

相似问题

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