gpt4 book ai didi

python - Pandas : Raise error when a line is incomplete

转载 作者:太空宇宙 更新时间:2023-11-03 14:34:27 25 4
gpt4 key购买 nike

pandas 拒绝读取包含太多逗号的文件(在第一行之后):

尝试读取 csv 以下内容:

col1,col2,col3
foo,1,2
bar,2,3
zob,0,3,4

会给我一个错误

但是,无论我在 read_csv 中尝试过什么选项,pandas 都会接受以下内容:

col1,col2,col3
foo,1,2
bar,2,3
zob,0

并且只会认为最后一行的 col3 中的值为 null

当发生这种情况(一行中的字段太少)时,是否有任何 pandas 方法可以引发异常?(在我的情况下,这意味着文件的源有错误,文件需要再次下载)。

看来 error_bad_lines 只涉及逗号太多的行。

在使用 read_csv 之前,我可以单独计算每行的逗号数量,但我想知道 pandas 中是否存在选项,因为它看起来更自然/可以简化代码的可读性。

最佳答案

更新:

he file does not contain any NaN values

In [85]: pd.read_csv(fn)
Out[85]:
col1 col2 col3
0 foo 1 2.1
1 bar 2 3.1
2 zob 0 NaN

因此,如果满足以下条件,您可以引发异常:

In [86]: pd.read_csv(fn).isnull().any().any()
Out[86]: True
<小时/>

旧答案:

可能的解决方案:

考虑以下输入 CSV 文件:

col1,col2,col3
foo,1,2.1
bar,2,3.1
zob,0

以下作品:

In [50]: pd.read_csv(fn, dtype={'col3':'float'})
Out[50]:
col1 col2 col3
0 foo 1 2.1
1 bar 2 3.1
2 zob 0 NaN

但是如果我们指示 Pandas 不要将空字符串视为 NaN,那么它会抛出异常:

In [51]: pd.read_csv(fn, na_values=['NAN','NaN','#NA'], keep_default_na=False, dtype={'col3':'float'})
...
skipped
...
ValueError: could not convert string to float:

关于python - Pandas : Raise error when a line is incomplete,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47058038/

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