首頁 >後端開發 >Python教學 >如何有效地拆分 Pandas DataFrame 中長度不等的嵌套字典列?

如何有效地拆分 Pandas DataFrame 中長度不等的嵌套字典列?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-28 06:27:15889瀏覽

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 資料轉換為表格格式,而無需複雜的 apply 函數。

以上是如何有效地拆分 Pandas DataFrame 中長度不等的嵌套字典列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn