2017-08-15 6 views
2

私はcsvにTableauテーブルをエクスポートして生成されたcsvファイルを持っていますが、Pythonで開くことはできません。csvファイルからpandasへの読み込みに失敗しました

私はpd.read_csvを使用しようとしましたが、失敗します。

import pandas as pd 

#path to file 
path = "tableau_crosstab.csv" 

data = pd.read_csv(path, encoding="ISO-8859-1") 

これは、ファイルを読み込むために動作しますが、結果は1行あたりの文字、およびフレームの頭の中でいくつかの奇妙な文字と行の数だけあります。

ÿþd 
o  
m  
a  
i 

などとなる。私は、Excelでファイルをインポートしようとすると、私は、セパレータとしてタブを選択する必要がありますが、私はここにいることをトライするときには、

import pandas as pd 

#path to file 
path = "tableau_crosstab.csv" 

data = pd.read_csv(path, encoding="ISO-8859-1", sep='\t') 

CParserError失敗:エラートークン化データを。 Cエラー:7行目の2番目の鋸が

コーデックでファイルを開こうとしましたが、エンコーディングは 'cp1252'と表示されますが、エンコーディングも失敗します。

私はutf-8を使用してそれを読み取ろうとしましたが、それも失敗します。 私はこれを解決するためのアイデアが不足しています。誰かが見て http://www.mediafire.com/file/6dtxo2deczwy3u2/tableau_crosstab.csv

答えて

3

を取ることができれば、ファイルはあなたが、具体的utf-16LE

あなたが変な文字

data = pd.read_csv(path, encoding="utf-16", sep='\t') 

を試してみてくださいユニコードBOMを持っている場合はここ

はコピーへのリンクですÿþは、Unicode-16リトルエンディアンのバイトオーダーマークである16進数FF FEに対応します。あなたはウィキペディアのページが表示された場合、それはすべての様々なバイト順序があなたのcsvファイルを読むとき、私は、次の取得

をマーク示しています

In[4]: 
data = pd.read_csv(r'C:\tableau_crosstab.csv', encoding='utf-16', sep='\t') 
data 

Out[4]: 
     domain Month of date impressions clicks 
0 test1.no  jun.17  725 676 633 
1 test1.no  mai.17  422 995 456 
2 test1.no  apr.17  241 102 316 
3 test1.no  mar.17  295 157 260 
4 test1.no  feb.17  122 902 198 
5 test1.no  jan.17  137 972 201 
6 test1.no  des.16  274 435 361 
7 test2.com  jun.17 3 083 373 1 638 
8 test2.com  mai.17 3 370 620 2 036 
9 test2.com  apr.17 2 388 933 1 483 
10 test2.com  mar.17 2 410 675 1 581 
11 test2.com  feb.17 2 311 952 1 682 
12 test2.com  jan.17 1 184 787 874 
13 test2.com  des.16 2 118 594 1 738 
14 test3.com  jun.17  411 456  41 
15 test3.com  mai.17  342 048  87 
16 test3.com  apr.17  197 058 108 
17 test3.com  mar.17  288 949 156 
18 test3.com  feb.17  230 970 130 
19 test3.com  jan.17  388 032 115 
20 test3.com  des.16 1 693 442 166 
21 test4.no  jun.17  521 790 683 
22 test4.no  mai.17  438 037 541 
23 test4.no  apr.17  618 282 1 042 
24 test4.no  mar.17  576 413 956 
25 test4.no  feb.17  451 248 636 
26 test4.no  jan.17  293 217 471 
27 test4.no  des.16  641 491 978 
+0

それはあまりにも私のために働きました。ありがとう!だから、あなたは、エンコーディングが 'utf-16'であることを理解できましたか? – Siesta

+0

はい、ウィキペディアのページ:https://en.wikipedia.org/wiki/Byte_order_mark#Byte_order_marks_by_encodingを見ると、16進数の値と表示された文字が表示されます。あなたはこれを見て、しばらくして認識しています。 – EdChum

関連する問題