繁体   English   中英

如何使用pd.read_csv跳过/忽略csv文件中的空字节?

[英]how to skip / ignore skip null byte in csv file using pd.read_csv?

我有一个.csv文件,其中有几百行这样的行/列(小示例,请参见图像我无法复制/粘贴空字节,必须手动键入它们): 在此处输入图片说明

9142,16.04000000,14.65000000
<0x00><0x00><0x00>
9143,16.19000000,14.65000000

少数行包含NULL字节(“ <0x00>”)的行在尝试使用pandas pd.read_csv读取csv时给我带来麻烦。

当我运行命令时:

pd.read_csv(fname, header=None, na_values='-32768', names=binnams, engine='python')

我收到以下错误:

pandas.errors.ParserError: ("NULL byte detected. This byte cannot be processed in Python's native csv library at the moment, so please pass in engine='c' instead", 'occurred at index 16')

当我切换引擎='c'时,我得到:

TypeError: ('cannot unpack non-iterable NoneType object', 'occurred at index 16')

有没有办法使用pd.read_csv完全忽略这些行?

我认为一种解决方法可能是打开文件并循环通过它们,并删除甚至可以读取包含<0x00>的任何行?

任何想法/建议绝对值得赞赏。

编辑-尝试逐行读取文件,以查看是否可以删除这些行,但不确定如何实际捕获空字节(使用“ <0x00>” obv无效:D)

链接到示例文件: https//drive.google.com/open?id = 1uEjMv0Be9Hu_AqXRzqB3enrWilzCTBvc

尝试将csv文件另存为UTF-16,然后尝试运行代码:

pd.read_csv(fname, header=None, na_values='-32768', names=binnams, engine='python')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM