[解決済み] Pandasでタブ区切りファイルを読む - Windowsでは動作するが、Macでは動作しない
2022-08-03 18:39:53
質問
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
を設定すると error_bad_lines の引数に read_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行で返されることです。これは、行の終端記号が無視されるか、または存在しないことを示しています。
csv_reader には、行の終端記号を指定することができます。mac を使用している場合、作成される行の末尾は
\r
で終わるのではなく、Linux 標準の
\n
というウィンドウズのサスペンダーとベルトのようなアプローチよりも
\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')
関連
-
[解決済み】_csv.Error: field larger than field limit (131072)
-
[解決済み] PandasとPythonでCSVファイルを読み込むとUnicodeDecodeErrorが発生する。
-
[解決済み] Python Pandas データをトークン化するエラー
-
[解決済み] Pythonでコード行間にかかる時間を測定するには?
-
[解決済み] Pandasの'Freq'タグにはどのような値が有効ですか?
-
[解決済み] Django Rest Framework ファイルアップロード
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
-
[解決済み] subprocess.run()の出力を抑制またはキャプチャするには?
-
[解決済み] Flaskで非同期タスクを作る
-
[解決済み] Python Empty Generator 関数
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pandasのデータフレームでタプルの列を分割するにはどうしたらいいですか?
-
[解決済み] Flaskで1時間ごとに関数を実行するようにスケジュールするには?
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
-
[解決済み] オブジェクトのリストに特定の属性値を持つオブジェクトが含まれているかどうかをチェックする
-
[解決済み] あるオブジェクトが数であるかどうかを確認する、最もパイソン的な方法は何でしょうか?
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
-
[解決済み] CSVデータを処理する際、1行目のデータを無視する方法を教えてください。
-
[解決済み] Flaskで非同期タスクを作る
-
[解決済み] 単純な文字列からtimedeltaオブジェクトを作成する方法
-
[解決済み] 新しいpip backtrackingの実行時問題の解決