我在我的一个程序中使用了这个函数,根据我的研究,通过矢量化可以获得更好的性能。
我如何使用矢量化函数而不是使用下面的代码来实现相同的分辨率?
for i, row in df.iterrows():
ifor_val = something
if <condition>:
ifor_val = something_else
df.set_value(i,'ifor',ifor_val)发布于 2016-11-13 17:25:31
如果该值依赖于行中的其他值,则无法避免迭代。
df['ifor'] = df['some_col'].apply(lambda v: something if <condition> else something_else)这将迭代放在Pandas中,因此它更干净(也可能更快)。
发布于 2016-11-13 18:35:08
你可以使用boolean indexing with loc (ix也可以,但是会被弃用,所以不要使用它):
df.loc[condition, 'ifor'] = something_else这将从ifor列中选择满足条件的行,并将它们的值设置为something_else。
https://stackoverflow.com/questions/40571569
复制相似问题