csvデータのpandas読み込みエラーの対応

本ページはプロモーションが含まれています

csvファイルのデータをPythonのpandasで読み込むときに以下のエラーとなってしまいはまりました。

pandas.errors.ParserError: Error tokenizing data. C error: Expected 24 fieldder._tokenize_rowss in line 4, saw 28  

行と列のデータがいびつだとこのエラーが出ます。自分の場合、列がやたら多いCSVデータでした。

対応としては、

  • CSVファイルの直接編集
  • ファイルの読み込み設定の工夫

直接編集はおかしな行や列を削除することで解決しますが、ファイルが増えてくると対応不能になりスマートではありません。

今回の記事では、ファイルの読み込み設定の工夫で解決しましたので紹介します。

read_csvのファイル読み込み設定の工夫

解決策です。先に列名を必要な数用意します(今回は100列分)

あとは、普通にpandasのread_csvでcsvファイルを読み込みます。読み込んだデータの列名はcol_1-100になっていますので、リネームするなど適宜対応すればOKです。

import pandas as pd

# 列名
col_names = ['col_{}'.format(i) for i in range(100)]

df = pd.read_csv('test.csv', names=col_names)

print(df.head(5))


というわけで、PandasでCSVファイルが読み込めないときは先に列名を作るとエラーを回避することができます。

関連記事

  • この記事を書いた人

drーharv

こんにちは、Dr. Harv です。専門医としてのキャリアを積む一方で、資産運用、副業、ポイ活にも取り組んでいます。 このブログ「dr-harv.com」では、日々の日常、投資の知見、趣味など幅広いトピックを扱っています。より良い未来につながることをコンセプトにしています。読者の皆様にとって何か役立つ情報を提供できれば幸甚です。

-Python