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 サイトの他の関連記事を参照してください。