「Initializing from file failed」OSErrorがPythonで起きたときの解決法は?

Pocket

本記事では、Python3でPandasを使用して、excelのcsvファイルを読み込もうとした時にOSErrorの“Initializing from file failed”が出た時の解決法をお教えします!

OSError“Initializing from file failed”の解決法は?

1.csvファイル名を半角英数に変更

実務上、これが最も簡単に解決できる方法だと思います。

しかし、諸々の都合でファイル名が変えられない!という方は、以下の方法をお使いください。

2.読み込みエンジンをPythonに指定(デフォルトはC言語)

読み込みたいcsvファイルの後ろ側に「, engine = ‘python’」をつけるだけ。

「,」をお忘れなく!

3.Python上でファイル名を変更

最も力ずくで、少し無理やり感のある方法ですが、ファイル名をPython上でのみ変更する方法です。

管理人は、実務上あまり有用性を感じないやり方ですので、紹介にとどめておきます。

自調自行の旅(対策方法 の対策方法2:ファイル名をマルチバイトを含まない表記にリネームする をご覧ください。)

“Initializing from file failed”が起きる原因は?

説明変数として“ほげほげ.csv”に入っているを使おうとして、Pandasでread_csvを使って読み込もうとしますよね?

と記述しますよね?そうすると、

とわけの分からないエラーが出て、最後に

OSError: Initializing from file failed

と出てくるハズです。

これはPython3.6でPandas0.20.1を使用してcsvファイルを読み込もうとした時に起きるエラーです。

(もしかすると、これ以降のバージョンで修正が加わるかもしれませんが、期待せずに待ちましょう!)

仕様上、デフォルト(C言語)では“read_csv”のコマンドは半角英数字のみしか認識しません

全角の文字をファイル名にした場合にこのエラーは起きます。

日本語の全角文字はもちろんのこと、全角の記号もNGです。

紛らわしいものとしては、

“_”(全角アンダーバー)、“ ”(全角スペース)、“-”(全角マイナス、ハイフン、ダッシュ)

などがあります。

実務上、結局“Initializing from file failed”にはどの解決策がおすすめ?

実務上の有効性を重視したいので、2段階に分けて提案させていただきたいと思います。

まずは、「2.読み込みエンジンをPythonに指定」で業務を進めていくのをおススメします!

どんなファイル名でもかまわず読み込めますからね。

おまけに「, engine = ‘python’」を追記するだけ、というお手軽さ!

そして、読み込みが遅かったり、明らかにcsvファイルのデータが大きい場合(PCのスペックにもよりますが、数MB~数十MB以上)であれば、

1.csvファイル名を半角英数に変更」を試していただきたいと思います。

Pythonよりも、デフォルトのC言語の方が処理速度が速いためです。

参考なれば幸いです!

・本記事は、Python3.6でエディタはJupyterNotebookを使用しています。

・Pythonでの数値解析環境の整え方はコチラ(工事中)!

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

%d人のブロガーが「いいね」をつけました。