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

Posted

技术标签:

【中文标题】将熊猫数据框保存为 csv 并覆盖现有文件【英文标题】:Saving pandas dataframe as csv and overwrite existing file 【发布时间】:2021-06-01 01:28:01 【问题描述】:

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

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])

但我不确定。

【问题讨论】:

【参考方案1】:

我认为+ 可能的连接值:

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'dir1i[:-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'dir1i', index=False)

【讨论】:

以上是关于将熊猫数据框保存为 csv 并覆盖现有文件的主要内容,如果未能解决你的问题,请参考以下文章

需要一种从现有数据框创建熊猫数据框的方法

将熊猫数据框保存到csv时如何保留numpy数组

将熊猫数据框保存到csv时如何保留numpy数组

VBA:保存而不覆盖现有文件

使用 VBA 将单元格区域导出到新的 .csv 文件中并保存而不覆盖

从熊猫数据框保存不带双引号的csv文件