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

Python遍历DataFrame列唯一值拆分导出CSV仅生成最后一个文件

问题成因

仅生成Account3.csv是因为文件名定义逻辑的位置错误:

  • save_as = Acct + ".csv"写在for循环外部,这行代码执行时循环尚未启动,Acct不会随循环迭代更新,最终只会保留遍历完账号列表后的最后一个值Account3
  • 循环内三次导出操作都写入同一个固定路径的文件,前两次生成的文件直接被后续写入覆盖,最终仅保留最后一次导出的Account3对应内容。
修正后代码

将文件名拼接逻辑移到循环内部,每次迭代时动态生成当前账号对应的导出路径即可:

import pandas as pd

data = [('Account1', 'ibm', 20),
('Account1', 'aapl', 30),
('Account1', 'googl', 15),
('Account1', 'cvs', 18),
('Account2', 'wal', 24),
('Account2', 'abc', 65),
('Account2', 'bmw', 98),
('Account2', 'deo', 70),
('Account2', 'glen', 40),
('Account3', 'aapl', 50),
('Account3', 'googl', 68),
('Account3', 'orcl', 95)]

data_df = pd.DataFrame(data, columns = ['Acct', 'ticker', 'qty'])

acctlist = data_df["Acct"].drop_duplicates()
save_to = "c:/temp/csv/"

for Acct in acctlist:
    Acct_df = data_df[data_df["Acct"] == Acct]
    # 动态拼接当前账号的导出路径
    export_path = save_to + Acct + ".csv"
    # 传入index=False可避免导出csv时附带pandas默认的行索引列
    Acct_df.to_csv(export_path, index=False)

运行后会在指定目录下生成Account1.csv、Account2.csv、Account3.csv三个文件,每个文件内对应当前账号的所有行数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 07:21:21