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

Python新手求助:如何从Pandas DataFrame生成对应Invoice No.的分组Excel文件

从Pandas DataFrame生成指定Excel文件的解决方案

核心思路

先按Voucher ID分组,记录每个凭证对应的所有发票行;再遍历每个Invoice No.,找到其所属的凭证组,将该组的所有行导出为以发票号命名的Excel文件。

示例代码

import pandas as pd

# 构造示例DataFrame
data = {
    'Invoice No.': ['MHI000000038710', 'MHI000000038711', 'MHI000000038712'],
    'Voucher ID': [100039, 100043, 100043]
}
df = pd.DataFrame(data)

# 按Voucher ID分组,保存每个凭证对应的所有行
voucher_groups = df.groupby('Voucher ID')

# 创建字典,映射每个Invoice No.到对应的Voucher ID
invoice_to_voucher = df.set_index('Invoice No.')['Voucher ID'].to_dict()

# 遍历每个Invoice No.,生成对应Excel文件
for invoice_num, voucher_id in invoice_to_voucher.items():
    # 获取当前凭证对应的所有行
    group_df = voucher_groups.get_group(voucher_id)
    # 保存为Excel文件,文件名用发票号
    group_df.to_excel(f'{invoice_num}.xlsx', index=False)

代码说明

  • groupby('Voucher ID'):把DataFrame按凭证ID分组,方便快速获取同一凭证下的所有发票行。
  • invoice_to_voucher:建立发票号到凭证ID的映射,遍历每个发票号时能直接找到对应的凭证组。
  • to_excel(f'{invoice_num}.xlsx', index=False):将对应凭证组的DataFrame导出为Excel文件,index=False表示不保存行索引,让输出表格更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 09:06:37