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

如何将生成的单个CSV文件按文件名存入对应新建文件夹

解决方案

以下是修正后的完整脚本,解决了文件夹创建与文件路径的问题,同时修复了原脚本中的语法错误:

import os
import pandas as pd

# 读取源数据文件
data = pd.read_csv(r'Filename.csv')
datab = pd.read_csv(r'Filename2.csv')

# 根目标目录,建议使用绝对路径更稳妥,例如 r'C:\users\destination'
root_path = r"users\destination"

# 用for循环替代while,更简洁地遍历0到110的行索引
for i in range(111):
    # 构造当前行对应的子文件夹路径
    folder_path = os.path.join(root_path, str(i))
    # 创建文件夹,exist_ok=True避免重复创建时抛出异常
    os.makedirs(folder_path, exist_ok=True)
    
    # 提取单行数据并复制,避免后续修改触发警告
    rowa = data.loc[[i], :].copy()
    rowb = datab.loc[[i], :].copy()
    
    # 调整数据格式
    rowa.loc[i, 'S.No'] = 'POINT'
    rowb.loc[i, 'S.No'] = 'POINT'
    rowa['ID'] = 1
    rowb['ID'] = 2
    rowa['value'] = ' '
    rowb['value'] = ' '
    
    # 筛选指定列,修复原脚本的括号错误(需用方括号而非圆括号)
    rowa = rowa[['S.No', 'ID', 'value', 'A', 'B', 'C']]
    rowb = rowb[['S.No', 'ID', 'value', 'A', 'B', 'C']]
    
    # 构造输出文件的完整路径,指向对应子文件夹
    output_file = os.path.join(folder_path, f'output{i}.csv')
    
    # 写入CSV文件,先写入rowa,再追加rowb
    rowa.to_csv(output_file, header=False, index=False)
    rowb.to_csv(output_file, mode='a', header=False, index=False)

关键修改说明

  • 路径拼接:使用os.path.join处理路径,避免手动拼接斜杠导致的跨平台兼容问题,同时确保输出文件直接存入对应子文件夹。
  • 文件夹创建优化:给os.makedirs添加exist_ok=True参数,防止重复运行脚本时因文件夹已存在报错。
  • 语法错误修复:补全data.loc[[i],:]的右括号;选择列时使用方括号(DataFrame列索引语法)替代原脚本的圆括号(函数调用语法)。
  • 循环优化:用for i in range(111)替代while循环,代码更简洁易读,直接覆盖0到110的行索引。
  • 警告规避:提取单行数据时添加.copy(),避免后续修改数据触发SettingWithCopyWarning。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 04:48:16