首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加速数据循环

加速数据循环
EN

Stack Overflow用户
提问于 2015-09-14 20:18:56
回答 1查看 283关注 0票数 3

我在一只熊猫上运行两个不同但非常相似的循环,我想知道是否有某种群组操作可以让我通过避免循环来加快速度。

代码语言:javascript
复制
for x in df.var1:
    df[df.var1==x, 'var2'] = np.max(df[df.var1==x, 'var2'])

也就是说,考虑到有多个具有相同var1值的行,我希望将所有这些行的var2值设置为var2对所有这些行获得的最大值。

我觉得我应该能够在不使用for循环的情况下做到这一点,但出于某种原因,我不知道如何做到这一点。想法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-14 20:46:57

看起来,您希望用该列中的最大值替换一列,并按另一列中的值分组。您应该能够使用groupby()transform(max)来获得所需的东西:

代码语言:javascript
复制
>>> import pandas as pd
>>> df = pd.DataFrame({"var1": [1, 1, 2, 2, 3, 3], 'var2': [1, 2, 3, 4, 5, 6]})
>>> df
   var1  var2
0     1     1
1     1     2
2     2     3
3     2     4
4     3     5
5     3     6
>>> df['var2'] = df.groupby('var1').transform(max)
>>> df
   var1  var2
0     1     2
1     1     2
2     2     4
3     2     4
4     3     6
5     3     6
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32573221

复制
相关文章

相似问题

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