如何合并Pandas DataFrame同标识行并聚合指定列(求和qty、平均price)
最优实现方法
直接使用Pandas的groupby()结合agg()方法就能高效完成需求,这是Pandas中处理分组聚合的标准最优方案,矢量化操作效率远高于循环处理。
步骤说明
- 加载数据(从CSV读取示例数据):
import pandas as pd # 读取你的CSV文件 df = pd.read_csv('your_order_data.csv')
- 分组聚合核心代码:
按symbol、orderId、time、isBuyer四列分组,对qty求和、price求平均值:
aggregated_df = df.groupby( ['symbol', 'orderId', 'time', 'isBuyer'], as_index=False ).agg( qty=('qty', 'sum'), price=('price', 'mean') )
as_index=False:确保分组的列保持为普通数据列,而非索引,方便后续导出或二次处理;agg()通过键值对明确指定每列的聚合规则:qty列用sum求和,price列用mean计算平均值。
- 导出聚合结果(可选):
如果需要将结果保存为CSV文件:
aggregated_df.to_csv('aggregated_order_data.csv', index=False)
示例数据验证结果
针对你提供的示例数据,聚合后的最终结果为:
| symbol | orderId | time | isBuyer | qty | price |
|---|---|---|---|---|---|
| TRXUSDT | 60180710.0 | 2019-05-15 05:10:03 | SELL | 28916.2 | 0.0302575 |
内容的提问来源于stack exchange,提问作者A.Midany
相关产品推荐
相关产品推荐

