2017-09-24 142 views
1

我有一个数据框,其中日期为索引,一列是进入和退出交易的指令。每一行是Python Pandas DataFrame基于多个先前行中的值删除行

'short_entry', 'short_exit', 'long_entry', 'long_exit'. 

规则之一:

1 - 你不能退出短(short_exit)的位置,如果你不已经持有的淡仓(short_entry)。同样的多头头寸。

2 - 如果上一个short_entry已用对应的short_exit关闭,则只能输入另一个short posn。同样,长时间进入和退出。

enter image description here

基于第一四行将被删除的规则和首经贸进入将是对2008-02-28其次short_exit上2008-03-27。其余的df会相应更新。

我读过几乎所有我能找到的熊猫文档和在线帮助。有基于上面一行中的值(使用.shift())删除行的答案,或者在.loc()中使用if语句。但我无法理解如何将所有这些放在一起,根据多个先前行的值删除一行。我可以很容易地使用for循环和df.itertuples()。

有没有熊猫pythonic这样做?任何帮助和提示将不胜感激。

感谢

+1

取代你的形象,作为文字,它会更具可读性,并阅读[好重现熊猫](https://stackoverflow.com/questions/20109391/how-to-make-good-reproducible-pandas-例子) –

回答

0

你的规则意味着一个状态机,这将导致标记该行的索引中删除。

我不认为熊猫有一个单一的功能,即将这些规则作为参考。

相关问题