gpt4 book ai didi

python - 使用 Pandas 读取制表符分隔的文件 - 适用于 Windows,但不适用于 Mac

转载 作者:IT老高 更新时间:2023-10-28 20:27:40 25 4
gpt4 key购买 nike

我一直在使用 Pandas/Python 在 Windows 中读取制表符分隔的数据文件,没有任何问题。数据文件的前三行包含注释,然后是标题。

df = pd.read_csv(myfile,sep='\t',skiprows=(0,1,2),header=(0))

我现在正尝试用我的 Mac 读取这个文件。 (我第一次在 Mac 上使用 Python。)我收到以下错误。

pandas.parser.CParserError: Error tokenizing data. C error: Expected 1
fields in line 8, saw 39

如果将 read_csverror_bad_lines 参数设置为 False,我会得到以下信息,该信息一直持续到最后一行的末尾。

Skipping line 8: expected 1 fields, saw 39
Skipping line 9: expected 1 fields, saw 125
Skipping line 10: expected 1 fields, saw 125
Skipping line 11: expected 1 fields, saw 125
Skipping line 12: expected 1 fields, saw 125
Skipping line 13: expected 1 fields, saw 125
Skipping line 14: expected 1 fields, saw 125
Skipping line 15: expected 1 fields, saw 125
Skipping line 16: expected 1 fields, saw 125
Skipping line 17: expected 1 fields, saw 125
...

我需要为 encoding 参数指定一个值吗?似乎我不应该这样做,因为在 Windows 上读取文件可以正常工作。

最佳答案

最大的线索是所有行都在一行中返回。这表明行终止符被忽略或不存在。

您可以为 csv_reader 指定行终止符。如果您使用的是 Mac,则创建的行将以 \r 而不是 linux 标准的 \n 结尾,或者更好的是带有 \的 windows 的吊带和腰带方法r\n.

pandas.read_csv(filename, sep='\t', lineterminator='\r')

您还可以使用编解码器包打开所有数据。这可能会以牺牲文档加载速度为代价来提高稳健性。

import codecs

doc = codecs.open('document','rU','UTF-16') #open for reading with "universal" type set

df = pandas.read_csv(doc, sep='\t')

关于python - 使用 Pandas 读取制表符分隔的文件 - 适用于 Windows,但不适用于 Mac,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27896214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com