ホームページ > バックエンド開発 > Python チュートリアル > 長さが等しくない Pandas DataFrame でネストされた辞書列を効率的に分割するにはどうすればよいですか?

長さが等しくない Pandas DataFrame でネストされた辞書列を効率的に分割するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-28 06:27:15
オリジナル
855 人が閲覧しました

How Can I Efficiently Split Nested Dictionary Columns in Pandas DataFrames with Unequal Lengths?

json_normalize を使用して Pandas でネストされた辞書の列を分割する

Python で Pandas DataFrame を操作する場合、最後の列にはネストされた辞書が含まれます。これらの値を別々の列に抽出するには、辞書の長さが等しくない場合に問題が発生する可能性があります。

この記事では、json_normalize() 関数を使用した解決策を紹介します。以下に例を示します。

import pandas as pd

# Sample DataFrame with a column of nested dictionaries
df = pd.DataFrame({
    'Station ID': ['8809', '8810', '8811', '8812', '8813'],
    'Pollutant Levels': [
        {'a': '46', 'b': '3', 'c': '12'},
        {'a': '36', 'b': '5', 'c': '8'},
        {'b': '2', 'c': '7'},
        {'c': '11'},
        {'a': '82', 'c': '15'},
    ]
})

# Extract columns using json_normalize
df2 = pd.json_normalize(df['Pollutant Levels'])

# Concatenate with original DataFrame
df = pd.concat([df, df2], axis=1)

# Drop the original 'Pollutant Levels' column
df = df.drop(columns=['Pollutant Levels'])

print(df)
ログイン後にコピー

出力:

   Station ID  a  b  c
0       8809  46  3  12
1       8810  36  5  8
2       8811  NaN  2  7
3       8812  NaN  NaN  11
4       8813  82  NaN  15
ログイン後にコピー

このアプローチは、ネストされた辞書値を個別の列に効果的に抽出し、さまざまな辞書の長さの問題を処理します。 json_normalize() 関数は、ネストされた JSON データを表形式に効率的に変換し、複雑な適用関数の必要性を排除します。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート