将 csv 文件读取到 pandas 失败

Sie*_*sta 2 python pandas

我有一个通过将 Tableau 表导出到 csv 生成的 csv 文件,但我无法在 Python 中打开它。

\n\n

我尝试使用 pd.read_csv 但失败了。

\n\n
import pandas as pd\n\n#path to file\npath = "tableau_crosstab.csv"\n\ndata = pd.read_csv(path, encoding="ISO-8859-1") \n
Run Code Online (Sandbox Code Playgroud)\n\n

这适用于读取文件,但结果只是多行,每行一个字符,以及帧头部的一些奇怪字符。

\n\n
\xc3\xbf\xc3\xbed\no    \nm    \na    \ni\n
Run Code Online (Sandbox Code Playgroud)\n\n

等等。当我尝试在 Excel 中导入文件时,我必须选择制表符作为分隔符,但是当我在这里尝试时,它失败了

\n\n
import pandas as pd\n\n#path to file\npath = "tableau_crosstab.csv"\n\ndata = pd.read_csv(path, encoding="ISO-8859-1", sep=\'\\t\') \n
Run Code Online (Sandbox Code Playgroud)\n\n

CParserError:标记数据时出错。C 错误:第 7 行应有 1 个字段,但看到了 2 个字段

\n\n

我确实尝试使用编解码器打开文件,然后它说编码是“cp1252”,但使用它作为编码也失败。

\n\n

我也尝试使用 utf-8 读取它,但也失败了。\n我已经没有办法解决这个问题了。

\n\n

如果有人可以看一下,这里是一个副本的链接http://www.mediafire.com/file/6dtxo2deczwy3u2/tableau_crosstab.csv

\n

EdC*_*ica 5

你有专门的unicode BOM是 utf-16LE

\n\n

尝试

\n\n
data = pd.read_csv(path, encoding="utf-16", sep=\'\\t\') \n
Run Code Online (Sandbox Code Playgroud)\n\n

你看到的有趣的字符:\xc3\xbf\xc3\xbe对应于十六进制FF FE,即 unicode-16 小端字节顺序标记。如果您查看维基百科页面,它会显示所有各种字节顺序标记

\n\n

阅读您的 csv 时,我得到以下信息:

\n\n
In[4]:\ndata = pd.read_csv(r\'C:\\tableau_crosstab.csv\', encoding=\'utf-16\', sep=\'\\t\')\ndata\n\nOut[4]: \n       domain Month of date impressions clicks\n0    test1.no        jun.17     725 676    633\n1    test1.no        mai.17     422 995    456\n2    test1.no        apr.17     241 102    316\n3    test1.no        mar.17     295 157    260\n4    test1.no        feb.17     122 902    198\n5    test1.no        jan.17     137 972    201\n6    test1.no        des.16     274 435    361\n7   test2.com        jun.17   3 083 373  1 638\n8   test2.com        mai.17   3 370 620  2 036\n9   test2.com        apr.17   2 388 933  1 483\n10  test2.com        mar.17   2 410 675  1 581\n11  test2.com        feb.17   2 311 952  1 682\n12  test2.com        jan.17   1 184 787    874\n13  test2.com        des.16   2 118 594  1 738\n14  test3.com        jun.17     411 456     41\n15  test3.com        mai.17     342 048     87\n16  test3.com        apr.17     197 058    108\n17  test3.com        mar.17     288 949    156\n18  test3.com        feb.17     230 970    130\n19  test3.com        jan.17     388 032    115\n20  test3.com        des.16   1 693 442    166\n21   test4.no        jun.17     521 790    683\n22   test4.no        mai.17     438 037    541\n23   test4.no        apr.17     618 282  1 042\n24   test4.no        mar.17     576 413    956\n25   test4.no        feb.17     451 248    636\n26   test4.no        jan.17     293 217    471\n27   test4.no        des.16     641 491    978\n
Run Code Online (Sandbox Code Playgroud)\n