在Python中压缩csv文件而不合并列?

2024-04-24 04:32:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要用python输出一个csv文件,由于文件太大,我使用包zipfile来压缩它。然而,当csv文件被输出和解压时,列合并了。。。。。。你知道吗

代码如下:

    for i in dealers:
        data_1=data_dealer[data_dealer['DEALER_ID']==i]
        data=data_1.to_string(index=False, header=True).encode("utf_8_sig")
        azip=zipfile.Zipfile('data%s.zip'%i,mode='w')
        azip.writestr('data%s.csv'%i,data=data,compress_type=zipfile.ZIP_DEFLATED)
        azip.close()

csv最初类似于(用逗号分隔):

a,1600,2018,NaN,......

现在只有一列,或者用空格隔开:

a 1600 2018 NaN ......

有人知道如何在Python中压缩csv而不合并列吗?你知道吗

非常感谢!!你知道吗


Tags: 文件csvto代码inidfordata
1条回答
网友
1楼 · 发布于 2024-04-24 04:32:29

通过使用Pandasto_string()函数,您创建了一个适合在控制台上显示的文本固定列宽表输出。不过,您希望在列之间创建一个带有,分隔符的CSV输出。因此,您需要使用to_csv()函数。如果没有给函数指定文件名,它将整个表作为字符串返回。然后可以使用writestr()传递:

for i in dealers:
    data_1 = data_dealer[data_dealer['DEALER_ID']==i]
    data = data_1.to_csv(index=False, header=True).encode("utf_8_sig")
    azip = zipfile.Zipfile('data{}.zip'.format(i), mode='w')
    azip.writestr('data{}.csv'.format(i), data=data, compress_type=zipfile.ZIP_DEFLATED)
    azip.close()

相关问题 更多 >