pandas - 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
解决方案
不需要循环,你可以用
stocks2['Startpoint']=((stocks2['VOL']>4*stocks2['ave'])&(stocks2['RET']<0.2)).astype(int)
推荐阅读
- json - Angular - Json POST 另一个表键
- ruby-on-rails - 活动模型序列化器对象不返回所有关联记录(有很多:通过关系)
- json - 使用 jq 过滤 json 数据中对象键的更短结构
- r - 具有单个类别的多个几何图形的图例
- gradle - 如何将 makefile 目标修复为 gradle 目标?
- neo4j - 关系问题
- c# - 怎么只能在边界外实现发光效果?
- react-native - 如何在 Reactnative 应用程序的测试自动化中重用步骤定义和页面对象?
- android - 使用 Facebook 重新授权时所需的数据
- javascript - 间歇性引用错误:$ 未定义