簡體   English   中英

Python Pandas DataFrame基於多個先前行中的值刪除行

[英]Python Pandas DataFrame delete rows based on values in multiple previous rows

我有一個以日期為索引和一個列的數據框,該列是進入和退出交易的指令。 每行是其中之一

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

規則:

1-如果您尚未持有空頭頭寸(short_entry),則無法退出空頭頭寸(short_entry)。 對於多頭頭寸同樣如此。

2-如果先前的short_entry已經用相應的short_exit關閉,則只能輸入另一個short posn。 同樣,進入和退出時間較長。

在此處輸入圖片說明

根據規則,將刪除前四行,並在2008-02-28輸入第一筆交易,然后在2008-03-27輸入short_exit。 df的其余部分將相應更新。

我已經閱讀了幾乎所有在熊貓文檔和在線幫助中都能找到的內容。 有一些答案可以根據上面的單行中的值刪除行(使用.shift()),或者使用.loc()中的if語句。 但是我只是無法理解如何將所有這些放在一起以基於多個先前行的值來刪除一行。 我可以輕松地使用for循環和df.itertuples()。

有熊貓這樣做的pythonic方式嗎? 任何幫助和提示將不勝感激。

謝謝

您的規則暗示着一個狀態機,這將導致標記要刪除的行索引。

我不認為大熊貓有一個功能可以將這些規則當作爭論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM