如何用逗号分隔符和逗号千位分隔符读取pandas CSV文件

时间:2018-05-17 09:48:04

标签: python pandas

我有一个csv文件,其行如下所示: 87.89," 2,392.05",14.77,373.2 (第三行有昏迷千分隔符)

pandas继续将第二列中的逗号视为行分隔符并显示"错误标记数据"错误。

在pandas中有没有可以忽略双引号之间的coma? 谢谢

示例行:

9999992613813558569,87.89,"2,392.05",14.77,373.2
9999987064038821584,95.11,"3,397.04",42.15,"1,461.14"
9999956300203713283,6.67,194.02,41.23,"1,105.45"
9999946809576027532,15.08,353.84,29.43,591.9

修改

我已经尝试过了:

read_csv(file, quotechar='"', encoding='latin1', thousands=',')
read_csv(file, quotechar='"', encoding='latin1', escapechar ='"')

2 个答案:

答案 0 :(得分:2)

尝试阅读:

json_encode($result);

包含这些内容的每个列都将被视为类型pd.read_csv(myfile, encoding='latin1', quotechar='"') 。 一旦你得到这个,回到浮动使用:

object

或者你可以尝试:

df = df.apply(lambda x: pd.to_numeric(x.astype(str).str.replace(',',''), errors='coerce'))

在这里,您可以看到原始pd.read_csv(myfile, encoding='latin1', quotechar='"', error_bad_lines=False) 中遗漏的内容 - 导致问题的原因。

对于省略的每一行,您将收到csv而不是Warning

答案 1 :(得分:0)

这对我有用:

pd.read_csv(myfile, encoding='latin1', quotechar='"', thousands=',')