微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。