ホームページ >バックエンド開発 >Python チュートリアル >辞書の Pandas 列を別の列に効率的に分割するにはどうすればよいですか?

辞書の Pandas 列を別の列に効率的に分割するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-17 22:35:11545ブラウズ

How Can I Efficiently Split a Pandas Column of Dictionaries into Separate Columns?

Pandas を使用して辞書の列を個別の列に分割する

問題の説明

データフレームには、分割する必要がある辞書の列が含まれています。別々の列。辞書は、同じ順序で出現する同じ 3 つのキー (「a」、「b」、「c」) で構成されていますが、長さは異なる場合があります。 pandas.concat() を使用した以前の正常なソリューションは IndexError で失敗するようになりました。

ソリューション

この問題は、データが辞書オブジェクトではなく Unicode 文字列としてエンコードされているために発生します。これを解決するには:

  1. ast.literal_eval() を使用して Unicode 文字列を変換します:
    json_normalize を適用する前に、次を使用して Unicode 文字列を辞書に変換します。 ast.literal_eval():

    import ast
    df['Pollutant Levels'] = df['Pollutant Levels'].apply(ast.literal_eval)
  2. json_normalize を使用して JSON を正規化します:
    pandas.json_normalize() を使用して辞書の列を個別に分割しますcolumns:

    df2 = pd.json_normalize(df['Pollutant Levels'])

このソリューションは、コストのかかる適用関数の使用を回避し、より効率的で堅牢なアプローチを提供します。

以上が辞書の Pandas 列を別の列に効率的に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。