簡體   English   中英

從 pandas dataframe 生成匯總表

[英]Producing a summary table from a pandas dataframe

我有一個算法交易機器人的事件日志加載到 dataframe 中,如下所示:

          datetime_long     high     low       trade_direction  trade_entry  trade_exit
159  2021-02-05 10:15:00   88.915   88.6150              LE          1.0         0.0
160  2021-02-05 10:30:00   89.395   88.7800              LX          0.0         1.0
172  2021-02-05 13:30:00   89.090   88.9000              LE          1.0         0.0
177  2021-02-05 14:45:00   89.410   89.1900              LX          0.0         1.0
206  2021-02-08 15:30:00   88.885   88.6600              LE          1.0         0.0
207  2021-02-08 15:45:00   89.080   88.7700              LX          0.0         1.0

“LE”表示做多,“LX”表示做多,“SE”表示做空,“SX”表示做空。 目標是讓每個“退出”與之前的“進入”在同一行,以便我可以執行一些簡單的算術計算,如確定利潤、平均持有時間等。

一個關於“移位”的 go 如何只退出一行,以便我的條目和相應的退出在同一行?

您可以使用.str.contains()檢查 Series 中的元素是否包含值。

X_mask = df['trade_direction'].str.contains('X')
X_previous_mask = X_mask.shift(-1).fillna(False)
E_mask = df['trade_direction'].str.contains('E')

您可以使用

# Entry Rows where Entry next row is Exit
X_previous_E_mask = X_previous_mask & E_mask

# Entry and Exit Rows where Entry next row is Exit
X_and_previous_E_mask = X_previous_E_mask | X_mask

最后,您可以使用 boolean 索引到 select 行。

df[mask]

暫無
暫無

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

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