我需要在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?
非常感谢!!
答案 0 :(得分:0)
通过使用Pandas to_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()