将熊猫数据框保存为 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-string
s:
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 并覆盖现有文件的主要内容,如果未能解决你的问题,请参考以下文章