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

如何基于Python DataFrame批量创建对应用户的Zip压缩文件夹

解决方案

你的问题出在将用户名和PDF列表拆成了两个独立序列,循环时无法一一映射,导致每个压缩包都写入了所有用户的PDF文件。只需遍历DataFrame的每一行,同时获取对应用户名和其PDF列表即可解决。

修正后的代码

import pandas as pd
from zipfile import ZipFile

data = {'name':['aaron', 'ben', 'charlie', 'daniel'],
       'pdfs':[['aaron1.pdf', 'aaron2.pdf', 'aaron3.pdf'],
               ['ben1.pdf', 'ben2.pdf'],
               ['charlie3.pdf', 'charlie5.pdf'],
                ['dan_age.pdf', 'daniel1.pdf']]}

df = pd.DataFrame(data, columns = ['name', 'pdfs'])

# 遍历DataFrame的每一行,同时获取用户名和对应的PDF列表
for _, row in df.iterrows():
    user_name = row['name']
    user_pdfs = row['pdfs']
    # 用上下文管理器创建并操作Zip文件,自动处理关闭
    with ZipFile(f"{user_name}.zip", 'w') as zipf:
        for pdf in user_pdfs:
            zipf.write(pdf)

代码说明

  • df.iterrows():遍历DataFrame的每一行,返回行索引和行数据,这里用_忽略索引,直接取row获取当前用户的信息。
  • with ZipFile(...) as zipf:使用上下文管理器,确保压缩文件在操作完成后自动关闭,避免资源泄漏。
  • 内层循环仅遍历当前用户的user_pdfs列表,只写入该用户对应的PDF文件,实现一一映射。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 12:45:32