解析 pandas.read_clipboard() 时列数不规则

问题描述 投票:0回答:1

我正在创建一个脚本来接收纯文本并将其转换为 csv,以便稍后导入 Anki。我正在尝试使用 pandas.read_clipboard() 来尝试跳过使用 txt 文件。 如果我的数据的第一行只有一列(没有附加答案)和它后面的行,则该函数会中断。

不工作

foo
foo-bar

工作

foo-bar
foo

我预计会收到

     0     1
0  foo   None
1  foo   bar

反而抛出错误

pandas.errors.ParserError: Expected 1 fields in line 2, saw 2

当我写这篇文章时,我现在意识到该函数将其读取为 csv,并期望从一开始就有固定数量的列。

我可以绕过这个还是这些是这个功能的限制?

代码

r1 = pandas.read_clipboard(header=None, sep='-', engine="python", on_bad_lines='warn')
print(r1)
python pandas csv
1个回答
0
投票

由于您的数据没有标题,pandas 必须猜测列数,并通过查看第一行来做到这一点。但是你可以通过

names
参数提前告诉 pandas 这些列是什么。没有必要猜测和弄错。

>>> r1 = pandas.read_clipboard(header=None, sep='-', engine="python", on_bad_lines='warn',
...     names=[0,1])
>>> print(r1)
     0     1
0  foo  None
1  foo   bar
© www.soinside.com 2019 - 2024. All rights reserved.