我正在尝试创建以下“算法”
df['x'] = np.where(sum(df['x'][i-1],3)>10, 10, 5)
这里的想法是,如果从前一个元素开始的最后3个元素的滚动总和为正,然后为5,否则为10。我正在寻找一种没有循环的数据帧样式解决方案。注意:df ['x']之前不存在;这是一个新列。所以结果应该是这样的:
x
5
5
5
10
10
.
.
.
10
答案 0 :(得分:0)
您可以使用熊猫提供的滚动功能。
df.loc [df ['column_you_want_to_use_for_rolling']。rolling(3).sum()> 0,'x'] = 5
您可以更改条件以适合您的要求。