当前位置: 首页> 娱乐> 八卦 > 敬请期待还是说尽情期待_前端培训学校_廊坊seo排名_正规的计算机培训机构

敬请期待还是说尽情期待_前端培训学校_廊坊seo排名_正规的计算机培训机构

时间:2025/7/12 8:38:50来源:https://blog.csdn.net/weixin_30777913/article/details/146091227 浏览次数:1次
敬请期待还是说尽情期待_前端培训学校_廊坊seo排名_正规的计算机培训机构

编写Python Pandas代码实现从一个Excel文件中的一个Sheet中的表格里取两个维度字段,一个度量字段的数据,根据这两个维度字段的数据分组统计,计算度量字段的数据的分组总计值,得到一个包含两个维度字段和度量字段的分组总计值字段的dataframe,再从另一个Excel文件中的一个Sheet中的表格里取两个维度字段,一个度量字段的数据组成一个dataframe,将这两个字段的对应字段full outer join起来,显示所有字段和两个度量字段值相减的值,以及相减的值除以第一个dataframe的度量值的百分比数值。

实现您需求的Python Pandas代码:

import pandas as pd# 第一个Excel处理
def process_first_excel(file_path, sheet_name, dim_cols, measure_col):df = pd.read_excel(file_path, sheet_name=sheet_name, usecols=dim_cols + [measure_col])grouped = df.groupby(dim_cols)[measure_col].sum().reset_index()return grouped# 第二个Excel处理
def process_second_excel(file_path, sheet_name, dim_cols, measure_col):df = pd.read_excel(file_path, sheet_name=sheet_name, usecols=dim_cols + [measure_col])return df# 执行处理流程
# 参数配置(根据实际情况修改)
first_file = "file1.xlsx"
first_sheet = "Sheet1"
first_dims = ["维度字段1", "维度字段2"]
first_measure = "度量字段1"second_file = "file2.xlsx"
second_sheet = "Sheet1"
second_dims = ["维度字段1", "维度字段2"]  # 确保维度字段名称与第一个文件一致
second_measure = "度量字段2"# 处理数据
df1 = process_first_excel(first_file, first_sheet, first_dims, first_measure)
df2 = process_second_excel(second_file, second_sheet, second_dims, second_measure)# 全外连接
merged = pd.merge(df1,df2,on=first_dims,how="outer",suffixes=("_df1", "_df2")
)# 计算差异和百分比
# 处理空值(将NaN转为0以便计算)
merged.fillna({first_measure: 0, second_measure: 0}, inplace=True)# 计算差异
merged["差异值"] = merged[first_measure] - merged[second_measure]# 计算百分比(避免除以零错误)
merged["百分比"] = merged.apply(lambda x: x["差异值"] / x[first_measure] * 100 if x[first_measure] != 0 else 0,axis=1
)# 格式化输出
pd.options.display.float_format = "{:.2f}%".format
print("结果数据表:")
print(merged)# 可选:保存结果到新Excel
merged.to_excel("comparison_result.xlsx", index=False)

使用说明:

  1. 需要根据实际数据修改以下参数:

    • 文件路径(first_filesecond_file
    • Sheet名称(first_sheetsecond_sheet
    • 维度字段名称(first_dimssecond_dims需保持相同)
    • 度量字段名称(first_measuresecond_measure
  2. 功能特点:

    • 自动处理分组聚合
    • 支持全外连接保留所有数据
    • 自动处理空值(转换为0)
    • 包含异常值处理(除零保护)
    • 结果输出格式美化
  3. 注意事项:

    • 确保两个文件的维度字段名称完全一致
    • 度量字段建议使用不同的名称以示区分
    • 最终结果包含以下列:
      • 所有维度字段
      • 第一个度量值(分组合计)
      • 第二个度量值
      • 差异值(第一个度量 - 第二个度量)
      • 百分比(差异值/第一个度量)

示例输出:

维度字段1 维度字段2  度量字段1  度量字段2  差异值    百分比
A       X     150.00   120.00   30.00   20.00%
B       Y     200.00     0.00  200.00  100.00%
C       Z       0.00    80.00  -80.00    0.00%
关键字:敬请期待还是说尽情期待_前端培训学校_廊坊seo排名_正规的计算机培训机构

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: