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

如何移除/迁移与另一DataFrame存在字段匹配值的对应行

退款表匹配处理可行方案

两类方案覆盖不同使用场景,可根据自己的数据量和操作习惯选择:

方案1:Excel零代码实现(适合10万行以内数据量)

优先用Power Query处理,不会出现公式卡顿、匹配错位问题,操作步骤:

  • 打开Excel,点击「数据」选项卡→「获取数据」→「自文件」→「自工作簿」,分别导入全量退款表、手动退款表两份数据到Power Query编辑器
  • 提取待保留的未退款记录:选中全量退款表查询,点击「合并查询」,两个表的匹配字段均选择ordernumber列,连接类型选择「左反(仅第一个表中存在、第二个表无匹配的行)」,导出结果即为剔除已手动退款记录后的更新版全量待退款表
  • 提取需迁移的匹配记录:重新选中全量退款表查询做合并,匹配字段仍选ordernumber,连接类型选择「内部(两个表中均存在匹配的行)」,导出结果即为需要从原全量表中移除的已手动退款记录,单独存为新工作表即可
  • 强制校验步骤:更新后待退款表行数 + 迁移出的匹配记录行数,必须等于原全量退款表总行数,确认无错漏后再替换原文件。

如果对Power Query不熟悉,也可以用函数辅助处理:在全量退款表新增空白辅助列,输入公式=COUNTIF(手动退款表!B:B,[@ordernumber])(注意把B列替换为手动退款表中ordernumber所在的实际列号),筛选辅助列值大于0的行,就是匹配到的已退款记录,剪切到新表保存,剩下的就是更新后的待退款表。该方法不适合10万行以上大文件,容易出现计算卡顿、程序无响应问题。

方案2:Python脚本批量处理(适合大文件场景,效率高无错漏)

如果文件行数超过10万,Excel打开和计算都会明显卡顿,用几行简单脚本就能快速完成匹配拆分,全程不用手动操作。
首先安装依赖库,在命令行执行:
pip install pandas openpyxl
然后新建py文件,粘贴以下代码,把文件名替换成你本地的实际文件名,运行即可:

import pandas as pd

# 读取两份退款表
# *订单号强制按字符串读取,避免数字格式不匹配(比如一个表存为文本、一个表存为数值)导致匹配失败
full_refund_df = pd.read_excel("全量退款表.xlsx", dtype={"ordernumber": str, "number": str})
manual_refund_df = pd.read_excel("手动退款表.xlsx", dtype={"ordernumber": str, "number": str})

# 提取匹配到的已手动退款记录,存为独立新表
matched_df = full_refund_df[full_refund_df["ordernumber"].isin(manual_refund_df["ordernumber"])]
matched_df.to_excel("迁移出的已手动退款记录.xlsx", index=False)

# 生成剔除已退款记录后的更新版待退款表
pending_df = full_refund_df[~full_refund_df["ordernumber"].isin(manual_refund_df["ordernumber"])]
pending_df.to_excel("更新后全量待退款表.xlsx", index=False)

# 输出校验信息
print(f"原全量表总记录数:{len(full_refund_df)}")
print(f"迁移出的已退款记录数:{len(matched_df)}")
print(f"剩余待退款记录数:{len(pending_df)}")
print(f"数据完整性校验:{len(full_refund_df) == len(matched_df) + len(pending_df)}")

注意事项

  • 脚本运行后先看控制台输出的校验结果,只有数据完整性校验结果为True时,才说明拆分过程没有丢数
  • 如果存在同一订单号重复出现的情况,可以在读取数据后加去重逻辑:对两个表分别执行drop_duplicates(subset=["ordernumber"]),避免重复匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 08:15:26