Pandasでタブ区切りファイルを読み取る - Windowsでは動作しますが、Macでは動作しません 質問する

Pandasでタブ区切りファイルを読み取る - Windowsでは動作しますが、Macでは動作しません 質問する

私は、Windows でタブ区切りのデータ ファイルを Pandas/Python を使って問題なく読み取っています。データ ファイルの最初の 3 行にはメモが含まれており、その後にヘッダーが続きます。

df = pd.read_csv(myfile,sep='\t',skiprows=(0,1,2),header=(0))

今、このファイルを Mac で読み込もうとしています。(Mac で Python を使用するのは初めてです。) 次のエラーが発生します。

pandas.parser.CParserError: Error tokenizing data. C error: Expected 1
fields in line 8, saw 39

設定した場合エラー_不良行議論の読み取り_csv間違い、最後の行の最後まで続く次の情報を取得します。

Skipping line 8: expected 1 fields, saw 39
Skipping line 9: expected 1 fields, saw 125
Skipping line 10: expected 1 fields, saw 125
Skipping line 11: expected 1 fields, saw 125
Skipping line 12: expected 1 fields, saw 125
Skipping line 13: expected 1 fields, saw 125
Skipping line 14: expected 1 fields, saw 125
Skipping line 15: expected 1 fields, saw 125
Skipping line 16: expected 1 fields, saw 125
Skipping line 17: expected 1 fields, saw 125
...

値を指定する必要がありますか?エンコーディング議論ですか? Windows ではファイルの読み取りは問題なく機能するので、議論する必要はないようです。

ベストアンサー1

最も大きな手がかりは、すべての行が 1 行で返されていることです。これは、行末文字が無視されているか、存在しないことを示しています。

csv_reader の行末文字を指定できます。Mac を使用している場合、作成される行は\rLinux 標準ではなく、で終わります\n。Windows のサスペンダーとベルトのアプローチでは、 がより適切です\r\n

pandas.read_csv(filename, sep='\t', lineterminator='\r')

コーデック パッケージを使用してすべてのデータを開くこともできます。これにより、ドキュメントの読み込み速度は低下しますが、堅牢性は向上します。

import codecs

doc = codecs.open('document','rU','UTF-16') #open for reading with "universal" type set

df = pandas.read_csv(doc, sep='\t')

おすすめ記事