将数据帧保存到 .csv 并在不指定文件路径的情况下创建文件夹

Saving dataframes to .csv and create folder without specifying the file path

我正在尝试找到一种方法将一些数据帧保存为 .csv 格式,作为我在 Python 中设计的 ML 例程的一部分。由于这是由多个步骤组成的,我想创建一个文件夹来将数据帧保存为代码的一部分。由于 pandas.DataFrame.to_csv 不允许您创建文件夹,我使用 os:

找到了这个解决方案
import os

import pandas as pd
    
outname = 'name.csv'
    
outdir = './dir'
if not os.path.exists(outdir):
    os.mkdir(outdir)
    
fullname = os.path.join(outdir, outname)    
    
df.to_csv(fullname)

但是,此方法需要您指定目录路径。由于我希望代码在多个设备上 运行 而无需每次都重写特定的 outdir,因此我正在寻找一种在当前 Python 工作目录中创建文件夹的方法(以每台设备上的那个为准)保存 .csv 文件的位置,无需写下路径。

您不必指定完整路径,只需指定相对路径即可。

尝试:

import os
import pandas as pd
outname = 'name.csv'

outdir = 'dir'
if not os.path.exists(outdir):
    os.mkdir(outdir)
    
df.to_csv(f"{outdir}/{outname}")

或者,您可以使用包含脚本完整路径的 __file__ 变量。 __file__ 只有当你 运行 它作为脚本而不是在解释器中时才有效。

import os
import pandas as pd
outname = 'name.csv'

outdir = 'dir'
fullname = os.path.join(os.path.dirname(__file__), outdir)
if not os.path.exists(fullname):
    os.mkdir(fullname)
    
df.to_csv(f"{fullname}/{outname}")