使用pandas的to_csv方法无法将自定义命名CSV保存到指定路径问题
问题根源
你两次报错都是因为to_csv()的传参规则理解错误:
- 该方法的第一个位置参数要求传入包含文件名的完整保存路径,你把父目录路径和文件名拆成两个独立的位置参数传入,导致第二个参数
'myDataFrame.csv'被系统识别为sep(分隔符)参数,自然会触发类型不匹配、参数重复的报错。 - 直接传文件名不生成文件的问题,大概率是你当前Python脚本的工作目录和你预期的不一致,文件其实生成在了脚本运行的工作目录下。
正确实现方案
写法1:手动拼接完整路径
直接把父目录和文件名拼接成完整路径传给to_csv()即可:
import pandas as pd import os file_name = "https://raw.githubusercontent.com/.../titanic.csv" df = pd.read_csv(file_name) # 拼接完整路径:父目录 + 自定义文件名 save_dir = r'D:\PROJECTS\DATA_SCIENCE\UDEMY_DataAnalysisBootcamp' save_path = os.path.join(save_dir, 'myDataFrame.csv') df.to_csv(save_path, encoding='utf-8', index=False)
这里加index=False是避免把DataFrame的行索引也存入CSV,不需要可以删掉。
写法2:切换工作目录后直接传文件名
如果你不想拼接路径,可以先把Python的工作目录切换到目标保存路径,再直接传文件名即可:
import pandas as pd import os file_name = "https://raw.githubusercontent.com/.../titanic.csv" df = pd.read_csv(file_name) save_dir = r'D:\PROJECTS\DATA_SCIENCE\UDEMY_DataAnalysisBootcamp' # 切换工作目录到目标路径 os.chdir(save_dir) df.to_csv('myDataFrame.csv', encoding='utf-8', index=False)
验证文件是否生成的小技巧
运行保存代码后可以加一行打印,确认文件是否真的生成:
print(os.path.exists(save_path)) # 输出True就说明文件已经成功保存在对应路径了
内容的提问来源于stack exchange,提问作者graygoo
相关产品推荐
相关产品推荐

