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

如何用Python在Excel中对相似名称的金额求和并生成DataFrame?

汇总Excel中相似标题对应的金额并生成DataFrame

步骤1:读入Excel数据

先把Excel文件加载到pandas的DataFrame里,假设你的Excel文件叫data.xlsx,标题列和金额列的名称分别是Title和Amount(根据实际情况替换):

import pandas as pd

# 读取Excel,表头用第0行
df = pd.read_excel("data.xlsx", header=0)
# 先看看原始数据长啥样
print(df.head())

步骤2:给相似标题分组

相似标题的处理得看你的具体格式,分两种常见情况:

情况A:标题有固定分隔符(比如"-")

如果标题是Office Supplies - Pens这种带分类前缀的格式,直接拆分取前缀作为分组依据:

# 按"-"拆分标题,取第一部分作为分组名
df["分组标题"] = df["Title"].str.split(" - ").str[0]

情况B:语义相似的标题(比如"打印纸采购"和"打印纸批量采购")

用fuzzywuzzy库做模糊匹配,先装依赖:

pip install fuzzywuzzy python-Levenshtein

然后写分组逻辑:

from fuzzywuzzy import process

# 先拿到所有不重复的标题
unique_titles = df["Title"].unique()
# 建立相似标题的映射关系
group_map = {}
for title in unique_titles:
    # 匹配相似度≥80的标题(阈值可以自己调)
    matches = process.extract(title, unique_titles, scorer=fuzz.token_sort_ratio)
    for match, score in matches:
        if score >= 80 and match not in group_map:
            group_map[match] = title

# 给原表加上分组列
df["分组标题"] = df["Title"].map(group_map)

步骤3:按分组汇总金额

把同一分组下的金额加总,生成汇总后的DataFrame:

# 按分组标题求和,重置索引变成普通DataFrame
summary_df = df.groupby("分组标题")["Amount"].sum().reset_index()
# 可以给列改个更直观的名字
summary_df.rename(columns={"分组标题": "汇总标题", "Amount": "总金额"}, inplace=True)
# 看看最终结果
print(summary_df)

可选:把结果存回Excel

如果需要导出汇总数据:

summary_df.to_excel("汇总结果.xlsx", index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 00:45:49