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

基于主DataFrame匹配多DataFrame并汇总Value的技术实现需求

多DataFrame与主卖家表匹配并生成日期排序报表方案

实现步骤

1. 合并所有子DataFrame

先将包含交易数据的DF1、DF2、DF3合并,仅保留需要的Seller、Value、Date字段,剔除无关数据:

import pandas as pd

# 合并子DataFrame,仅保留目标字段
combined_df = pd.concat([df1[['Seller', 'Value', 'Date']], 
                         df2[['Seller', 'Value', 'Date']], 
                         df3[['Seller', 'Value', 'Date']]], 
                        ignore_index=True)

2. 与主卖家表匹配

用主表DF_Master_seller做左连接,确保主表内所有卖家都被保留,无交易记录的卖家对应值填充为0:

# 基于Seller字段左连接主表与合并后的子表
merged_df = pd.merge(DF_Master_seller, combined_df, on='Seller', how='left')
# 空值填充为0,统一无交易数据的表现形式
merged_df['Value'] = merged_df['Value'].fillna(0)

3. 转换为日期列的宽表

通过透视表将数据转换为「行=卖家,列=日期,值=交易金额」的结构:

pivot_df = merged_df.pivot(index='Seller', columns='Date', values='Value').fillna(0)

4. 按日期排序列

将日期列转换为datetime类型后重新排序,保证列按时间顺序排列:

# 把列名转为datetime类型并排序
sorted_dates = sorted(pivot_df.columns, key=lambda x: pd.to_datetime(x))
pivot_sorted_df = pivot_df[sorted_dates]

5. 添加总计行

计算每个日期列的总和,作为新行追加到DataFrame末尾:

# 生成总计行
total_row = pivot_sorted_df.sum().to_frame().T
total_row.index = ['总计']

# 合并总计行到最终表
final_df = pd.concat([pivot_sorted_df, total_row])

最终效果

final_df以卖家为行索引,按时间顺序排列的日期为列,每个单元格对应卖家在该日期的交易金额,最后一行是各日期的交易总计值。

内容的提问来源于stack exchange,提问作者harry

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 15:34:58