将 pandas 数据框保存为 csv 并覆盖现有文件

Saving pandas dataframe as csv and overwrite existing file

我总是有两个来自不同目录的数据帧,它们的名称中的最后四位数字相同。文件路径是:

dir1 = "path/to/files1/"
dir2 = "path/to/files2/"

然后我使用循环加载和连接属于数据帧 df 的数据帧。

# For each file in the first directory
for i in os.listdir(dir1):
    # For each file in the second directory
    for j in os.listdir(dir2):
        # If the last 4 digits of filename match (ignoring file extension)
        if i[-8:-4] == j[-8:-4]:
            # Load CSVs into pandas
            print(i[-12:-4] + ' CPU Analysis')
            print('\n')
            df1 = pd.read_csv(dir1 + i,delimiter=',')
            
            df2 = pd.read_csv(dir2 + j,delimiter=';')
            
            df = pd.concat([df1, df2])

我现在要做的是使用与以前相同的文件名将 df 存储在 dir1 中,即我想覆盖 dir1 中的现有文件并另存为 csv .

所以,我想我应该在循环结束时使用这样的东西:

df.to_csv(dir1, i[:-4])

但是我不确定。

我认为这里可以通过 +:

加入值
df = pd.concat([df1, df2])
df.to_csv(dir1 + i[:-4] + '.csv', index=False)

或使用f-strings:

df = pd.concat([df1, df2])
df.to_csv(f'{dir1}{i[:-4]}.csv', index=False)

但如果需要原始扩展名,请使用与读取文件相同的路径:

df = pd.concat([df1, df2])
df.to_csv(dir1 + i, index=False)

df = pd.concat([df1, df2])
df.to_csv(f'{dir1}{i}', index=False)