首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Pandas iterrow和set_value作为矢量化函数

Python Pandas iterrow和set_value作为矢量化函数
EN

Stack Overflow用户
提问于 2016-11-13 15:30:27
回答 2查看 740关注 0票数 1

我在我的一个程序中使用了这个函数,根据我的研究,通过矢量化可以获得更好的性能。

我如何使用矢量化函数而不是使用下面的代码来实现相同的分辨率?

代码语言:javascript
复制
 for i, row in df.iterrows():
    ifor_val = something
    if <condition>:
        ifor_val = something_else
        df.set_value(i,'ifor',ifor_val)
EN

回答 2

Stack Overflow用户

发布于 2016-11-13 17:25:31

如果该值依赖于行中的其他值,则无法避免迭代。

代码语言:javascript
复制
df['ifor'] = df['some_col'].apply(lambda v: something if <condition> else something_else)

这将迭代放在Pandas中,因此它更干净(也可能更快)。

票数 3
EN

Stack Overflow用户

发布于 2016-11-13 18:35:08

你可以使用boolean indexing with loc (ix也可以,但是会被弃用,所以不要使用它):

代码语言:javascript
复制
df.loc[condition, 'ifor'] = something_else

这将从ifor列中选择满足条件的行,并将它们的值设置为something_else

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40571569

复制
相关文章

相似问题

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