【发布时间】:2022-02-06 15:12:43
【问题描述】:
import pandas as pd
import lzma
df = pd.read_csv('final.csv', headers = None)
with open('/xzfolder/final.xz', 'wb') as f:
f.write(lzma.compress(df.to_records(index=False), format=lzma.FORMAT_XZ))
df = pd.read_csv('/xzfolder/final.xz', headers = None)
以上是我的代码。我正在使用 lzma 压缩我的 csv...但是当我读取压缩文件时,我得到 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf0 in position 8: invalid continuation byte
【问题讨论】:
-
pandas.read_csv 只接受文本文件。它无法读取您的压缩二进制文件。您必须先解压缩它,然后使用 pandas.read_csv
-
我没有尝试使用
xz压缩文件,但使用gzip压缩文件,如果我通过压缩,我可以使用read_csv选项直接读取它 -pd.read_csv("filename.gz", headers=None, compression="gzip")有效 -
@Mortz 好的。但问题不是在谈论 gzip。
-
我的意思是你可以尝试直接传递压缩参数——你似乎没有尝试过——即
df = pd.read_csv('file.xz', compression='...') -
@Mortz 它仍然给出错误。我努力了。您也可以尝试确认一下。