[英]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.