首页 > 解决方案 > pandas iterrows 覆盖值

问题描述

我尝试使用 iterrows 作为处理框架的命令。

stocks2['Startpoint']=0
for index,row in stocks2.iterrows():
    if row['VOL']>4*row['avg'] and row['RET']< -0.02 :
        row['Startpoint']=1

我知道条件多次满足,但在这种情况下似乎没有成功覆盖该值。

stocks2['Startpoint'].value_counts()

输出[141]:0 1588603 名称:起点,数据类型:int64

标签: pandasloopsdataframeiteration

解决方案


不需要循环,你可以用

stocks2['Startpoint']=((stocks2['VOL']>4*stocks2['ave'])&(stocks2['RET']<0.2)).astype(int)

推荐阅读