我是Python新手,有以下Pandas数据帧 - 我正在尝试编写代码来填充下面的“signal”列:
Days | long_entry_flag | long_exit_flag | signal |
---|---|---|---|
1 | FALSE | TRUE | |
2 | FALSE | FALSE | |
3 | TRUE | FALSE | 1 |
4 | TRUE | FALSE | 1 |
5 | FALSE | FALSE | 1 |
6 | TRUE | FALSE | 1 |
7 | TRUE | FALSE | 1 |
8 | FALSE | TRUE | |
9 | FALSE | TRUE | |
10 | TRUE | FALSE | 1 |
11 | TRUE | FALSE | 1 |
12 | TRUE | FALSE | 1 |
13 | FALSE | FALSE | 1 |
14 | FALSE | TRUE | |
15 | FALSE | FALSE | |
16 | FALSE | TRUE | |
17 | TRUE | FALSE | 1 |
18 | TRUE | FALSE | 1 |
19 | FALSE | FALSE | 1 |
20 | 假 | 假 | 1 |
21 | 假 | 真 | |
22 | 假 | 假 | |
23 | 假 | 假 |
我的伪代码版本将采取以下步骤
- 查找 [‘long_entry_flag’] 列,直到出现 True 的入场条件(最初是第3天)
- 然后我们每天在 [‘signal’] 列中输入 '1' ,直到出现 True 的退场条件 [‘long_exit_flag’]==True (第8天)
- 接着回到 [‘long_entry_flag’] 列等待下一个入场条件(第10天出现)
- 再次每天在 [‘signal’] 列中输入 '1' ,直到出现 True 的退场条件(第14天)
- 等等。
有什么快速填充 ‘signal’ 列的方法吗?如果可能,可以使用矢量化技术吗?
这是一个数万行的大数据框的子集,并且它是正在顺序分析的许多数据框之一。
apply
(柯里化?)来保留状态或以向量化的方式实现,我将会第一个点赞。 - ayorgo