adzukkyni
@adzukkyni

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

kaggle notebookでのpandas_profilingのインポートエラーの対処法

解決したいこと

現在、kaggleのtitanicコンペをkaggle notebook環境で行っているプログラミング初心者です。EDAの手段として「pandas_profiling」というライブラリが有用と聞き実行しようとしたのですが、下記のようなエラーが発生してimportできません。なお、pandasのライブラリそのものについては普通にインポートできています。

➀kaggle notebookでpandas_profilingをimportする方法
②今回の場合、どのように調べれば(どのような知識を持っていれば)自力で問題を解決できたと思われるか。
よろしくお願いいたします。

発生している問題・エラー

スクリーンショット 2024-07-29 095615.png
スクリーンショット 2024-07-29 095649.png
スクリーンショット 2024-07-29 095715.png

該当するソースコード

import pandas_profiling

自分で試したこと

[A]
error codeで提示されているttps://errors.pydantic.dev/2.5/u/import-errorを確認しました。すると

「インポートエラー¶
このエラーは、Pydantic V1で利用可能だったが、 Pydantic V2です。
詳細については、移行ガイドを参照してください。」(原文を日本語翻訳)

という記述がありました。

移行ガイド(https://docs.pydantic.dev/2.5/migration/#basesettings-has-moved-to-pydantic-settings) によると、pydanicをV1からV2に移行する際に変更が必要とのことでした。
➀このサイトで最初に紹介されていたアップデート方法
pip install -U pydantic
を試しましたが以下のようになり、すでにアップデートされているようです。
Requirement already satisfied: pydantic in /opt/conda/lib/python3.10/site-packages (2.5.3)
②このガイドは非常に分量が多く、出てくる用語を調べながら冒頭部を読んでみましたが、kaggle nptebookで動いているpythonについてどのように捜査を施せばよいか見当がつきませんでした。
③「pandas」で用語検索をかけたりしましたが、ヒット件数は0件でした。

[B]
「pandas_profiling import error kaggle」で検索をかけましたが、自分と類似する問題の発生は上から10サイトでは確認できませんでした。

0

1Answer

➀kaggle notebookでpandas_profilingをimportする方法

pandas_profiling が pydantic v2 に対応していないので、 v1 を入れる必要があります。 pip install -U 'pydantic==1.*' してください。

②今回の場合、どのように調べれば(どのような知識を持っていれば)自力で問題を解決できたと思われるか。

エラーの内容から、 pydantic v2 がインストールされていることが分かり、 pandas_profiling が pydantic v1 の API を期待していることが推測できます。(エラーの翻訳は間違っていて、正しくは「このエラーは、 Pydantic V1 で使えたが V2 で削除されたオブジェクトをインポートしようとしたときに発生する。」です。)

pip install の使い方を調べればパッケージのバージョン範囲を指定できることが分かるので、それで v1 をインストールすれば解決することが予想されます。そのガイドにも書いてあります https://docs.pydantic.dev/2.5/migration/#continue-using-pydantic-v1-features

なお、一般的な Python アプリケーション開発では、コードに必要なパッケージとそのバージョン範囲をひとまとめに requirements.txt に書くか、 Poetry などのパッケージマネージャで管理させることが多いです。(Python では発展途上のトピックなのでベストプラクティスが毎年のように変わります。)

このあたりの話は Kaggle 関係の入門書には(読んだことはありませんが)載っていないかもしれません。実践的な Python 参考書であれば書いてあるはずなので、一読することをお勧めします。

1Like

Comments

  1. This comment has been deleted for violation of our Terms of Service.
  2. This comment has been deleted for violation of our Terms of Service.
  3. @adzukkyni

    Questioner

    とても丁寧なご回答、ありがとうございます!!
    説明サイトの翻訳が誤っていたのですね。英語のままサイトを読めるように訓練します。環境構築関連の話題は苦手意識から避けていたのですが、教えていただいたキーワードに沿って色々と調べました。kaggle notebookに内蔵されるpythonのパッケージをいじる方法はわかりませんでしたが、anacondaを用いたpythonでならpip install等の操作やpydantic v1への変更が出来るようになりました。

    kaggle notebookではydata-profilingを用いることにしましたが(紹介してくださりありがとうございます。)、詳しいご説明のおかげで環境構築に関する理解が深まりました。本当にありがとうございました!!

Your answer might help someone💌