You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

统计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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 09:05:23