熊猫拒绝读取逗号过多的文件(第一行后):
正在尝试读取以下内容:
col1,col2,col3
foo,1,2
bar,2,3
zob,0,3,4
会给我一个错误吗
然而,无论我在read_csv中尝试了什么选项,熊猫都接受以下选项:
col1,col2,col3
foo,1,2
bar,2,3
zob,0
只考虑最后一行的COL3中的值为空。
当发生这种情况(一行中的字段太少)时,是否有任何方法引发异常?(在我的例子中,这意味着文件源有错误,需要再次下载文件)。
它似乎只涉及error_bad_lines逗号太多的行。
在使用read_csv之前,我可以分别计算每行的逗号数,但我想知道pandas中是否存在一个选项,因为它看起来更自然/更易于代码可读性。
更新:
该文件不包含任何NaN值
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:
我有一个CSV文件,有三列:col1,col2,col3。我试图在这个文件中附加一个只包含col2的数据框 结果是: 我希望: 有可能以某种方式实现这一点吗?
问题内容: 我很好奇,为什么不支持,而与这两个工作。 我希望以与Python索引约定一致的方式进行工作。有设计上的原因不支持按单个整数索引行吗? 问题答案: 回显@HYRY,请参阅0.11中的新文档 http://pandas.pydata.org/pandas- docs/stable/indexing.html 在这里,我们有了新的运算符,以显式支持仅整数索引,并且显式仅支持标签索引 例如,想
问题内容: 假设我用两列(一个DateTime)和一个(整数)创建了一个熊猫DataFrame 。现在,我想根据第一列()中的值创建一个DatetimeIndex : 一切似乎都正常,除了我打印DataFrame时,它说它具有Int64Index。 我是在做错事还是不正确理解Indeces的概念? 问题答案: 没有就位(除非您通过)。否则一切正确 同样作为参考,在即将到来的0.12版本(下周)中,
我得到以下错误 关于代码 我试图将的列连接到的列。 对于这些打印语句 我得到以下输出: 你知道是什么问题吗?为什么索引会成为一个问题?索引应该是相同的,因为我关注的是列,而不是行。列值似乎完全不同。 谢谢
我正在从pandas输出一个csv文件,其中包含一些用于latex报告的调查文本。一些响应在其响应中带有逗号,因此熊猫将数据输出为 通过将字段用双引号括起来,显然可以处理字段中的逗号。 我希望上面看起来像这样: 通过将所述字段包装在{}中,因为这是latex包可以理解的分隔符。 有没有办法告诉熊猫。要做这个吗? 我已经尝试了以下方法 当然,当我需要“}”时,它会用“{”关闭文本包装 更新当我使用p
我开始学习熊猫,发现了一个我似乎无法解决的问题。我正在从csv文件加载数据,需要删除一些与几个字符串匹配的行。 CSV: 我所尝试的: 但我得到的错误如下: 我错过了什么?另外,如果我想传递一个列表并从列表中删除所有匹配字符串的行,该怎么办?例子: