如何使用条件判断将Pandas现有df数据添加到新DataFrame
原有代码问题
add_pair函数无返回值,调用apply后会给df2的Pair列全部赋值为None- 函数内部直接给
df2['Pair']整列赋值,会导致所有行的Pair被覆盖为同一个值,不符合按交易对去重的需求 - 缺失均价、总持仓量、总持仓价值的核心计算逻辑
实现方案
你需要的按交易对分组统计的需求可以直接用pandas的groupby聚合方法实现,代码如下:
import pandas as pd # 1. 拆分Executed列提取纯数字的持仓量(原列带币种后缀,需先处理成数值类型) df['Position_Amount'] = df['Executed'].str.extract(r'(\d+\.\d+)').astype(float) # 2. 按Pair分组直接聚合生成df2 df2 = df.groupby('Pair').agg( Medium_Price=('Price', 'mean'), Total_Amount=('Position_Amount', 'sum'), Total_Value=('Amount', 'sum') ).reset_index() # 3. 重命名列匹配你需要的字段格式 df2.columns = ['Pair', 'Medium Price', 'Total Amount', 'Total Value'] # 输出查看结果 print(df2)
说明
- 如果你有同一交易对的多笔交易,上述代码会自动计算该交易对的平均成交价、总持仓量、累计交易价值
- 不需要手动初始化空DataFrame逐行添加,pandas原生聚合方法执行效率更高,语法更简洁
内容的提问来源于stack exchange,提问作者BruV
相关产品推荐
相关产品推荐

