导入在大熊猫一个CSV文件导入到数据帧大熊猫

导入在大熊猫一个CSV文件导入到数据帧大熊猫

问题描述:

我从SQL转储,看起来像下面的(用头FILE.CSV从终端前几行)取一个CSV文件:导入在大熊猫一个CSV文件导入到数据帧大熊猫

??AANAT,AANAT1576,4 
AANAT,AANAT1704,1 
AAP,AAP-D-12-00691,8 
AAP,AAP-D-12-00834,3 

当我使用pd.read_csv('file.csv')命令我得到一个错误“ValueError:没有列从文件解析”。

关于如何将CSV文件导入到表格并避免错误的任何想法?

拟订一项问题(以下Ed的评论)

我试图标题=无,skiprows = 1,以避免?? (从终端使用head命令时出现)。

的文件路径提取物http://goo.gl/jyYlIK

+1

那些是''??真的在文本文件?当我导入你的数据导入没有错误,你可以尝试'pd.read_csv('file.csv',header = None)' – EdChum 2014-09-29 10:52:24

+0

谢谢埃德只是阐述了这个问题 - 也许是一个有趣的编码,但不知道如何处理在这种情况下 – user7289 2014-09-29 11:09:39

+0

'??'是否应该在那里,它应该仍然会导入,除非这些'??'是一些奇怪的控制字符。你是否能够发布一个链接到原始CSV文件,目前如果我复制并粘贴你的数据我可以导入它,你应该能够确认这是你的结局,所以可能会出现一些问题,如果你的CSV文件出错 – EdChum 2014-09-29 11:11:50

所以??字符,你看到的是实际上非打印字符,使用十六进制编辑器显示,它们实际上是utf-16 little endian\FFEE在您的原始CSV文件中查找之后,是字节顺序标记。

因此,所有你需要做的是通过这为编码类型,它在精细上写着:

In [46]: 

df = pd.read_csv('otherfile.csv', encoding='utf-16', header=None) 
df 
Out[46]: 
     0    1 2 
0 AANAT  AANAT1576 4 
1 AANAT  AANAT1704 1 
2 AAP AAP-D-12-00691 8 
3 AAP AAP-D-12-00834 3 
4 AAP AAP-D-13-00215 10 
5 AAP AAP-D-13-00270 7 
6 AAP AAP-D-13-00435 5 
7 AAP AAP-D-13-00498 4 
8 AAP AAP-D-13-00530 0 
9 AAP AAP-D-13-00747 3 
+0

我已经实施了你的建议,但是我也得到了同样的错误。 – 2016-07-15 06:37:57

+0

对不起,我不能评论,除非你提供的实际数据,你可以尝试传递不同的编码'utf-8',关键是看前几个字节,看看它是否匹配已知的[字节顺序标记]( https://en.wikipedia.org/wiki/Byte_order_mark#Representations_of_byte_order_marks_by_encoding) – EdChum 2016-07-15 08:47:53