统计DataFrame中买卖事件对的盈利与亏损次数
交易盈亏次数统计方案
问题分析
已知包含buy/sell事件的DataFrame,每个buy对应后续一个sell,需统计盈利(sell价>buy价)和亏损(sell价<buy价)的次数。
实现步骤与代码
1. 导入依赖并构造示例数据
import pandas as pd # 构造示例DataFrame data = { 'event': ['buy', pd.NA, 'sell', 'buy', pd.NA, pd.NA, pd.NA, 'sell'], 'b': [4, pd.NA, 5, 3, pd.NA, pd.NA, pd.NA, 9] } df = pd.DataFrame(data)
2. 提取有效交易点并配对计算
# 过滤出仅含交易事件的行 trade_records = df.dropna(subset=['event']).reset_index(drop=True) # 分离买入价和卖出价(保证顺序一一对应) buy_prices = trade_records[trade_records['event'] == 'buy']['b'].tolist() sell_prices = trade_records[trade_records['event'] == 'sell']['b'].tolist() # 统计盈亏次数 win_count = 0 lost_count = 0 for buy, sell in zip(buy_prices, sell_prices): if sell > buy: win_count += 1 elif sell < buy: lost_count += 1 # 输出结果 print(f'total wins={win_count}') print(f'total lost={lost_count}')
运行结果
total wins=2 total lost=0
内容的提问来源于stack exchange,提问作者gotiredofcoding
相关产品推荐
相关产品推荐

