【发布时间】:2021-11-12 12:08:15
【问题描述】:
我想弄清楚如何标记价格是 4 次加价的一部分的行。 “is_consecutive”实际上是标记。
我设法做到了行之间的差异:
df['diff1'] = df['Close'].diff()
但我没能找出哪一行是 4 次加价的一部分。
我想使用 df.rolling() 。
例子df,
在第 0-3 行,我们需要在 ["is_consecutive"] 列上获得 'True' 的输出,因为连续行上的 ['diff1'] 增加了 4 行。
在第 8-11 行,我们需要在 ["is_consecutive"] 列上获得 'False' 的输出,因为此连续行上的 ['diff1'] 为零。
Date Price diff1 is_consecutive
0 1/22/20 0 0 True
1 1/23/20 130 130 True
2 1/24/20 144 14 True
3 1/25/20 150 6 True
4 1/27/20 60 -90 False
5 1/28/20 95 35 False
6 1/29/20 100 5 False
7 1/30/20 50 -50 False
8 2/01/20 100 0 False
9 1/02/20 100 0 False
10 1/03/20 100 0 False
11 1/04/20 100 0 False
12 1/05/20 50 -50 False
一般例子:
如果 价格 = [30,55,60,65,25]
列表中连续数字的不同形式:
diff1 = [0,25,5,5,-40]
所以当 diff1 为加时,它实际上意味着连续价格上涨。
我需要标记(在 df 中)有 4 个连续上升的行。
感谢您的帮助 (-:
【问题讨论】:
-
您能否提供代码来构建数据框并让我们更轻松地提供帮助?
-
您可以使用滚动函数 dee stackoverflow.com/questions/13996302/… 进行用例
标签: python pandas dataframe matplotlib diff