Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Membahagikan Lajur Kamus Bersarang dengan Cekap dalam Pandas DataFrames dengan Panjang Tidak Sama?

Bagaimanakah Saya Boleh Membahagikan Lajur Kamus Bersarang dengan Cekap dalam Pandas DataFrames dengan Panjang Tidak Sama?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-28 06:27:15872semak imbas

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

Memisahkan Lajur Kamus Bersarang dalam Panda dengan json_normalize

Dalam Python, apabila bekerja dengan Pandas DataFrames, adalah mungkin untuk menghadapi keadaan di mana lajur terakhir mengandungi kamus bersarang. Untuk mengekstrak nilai ini ke dalam lajur yang berasingan, anda mungkin menghadapi cabaran jika kamus tidak sama panjang.

Artikel ini membentangkan penyelesaian menggunakan fungsi json_normalize(). Berikut ialah contoh:

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)

Output:

   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

Pendekatan ini secara berkesan mengekstrak nilai kamus bersarang ke dalam lajur berasingan, mengendalikan isu panjang kamus yang berbeza-beza. Fungsi json_normalize() menukarkan data JSON bersarang dengan cekap kepada format jadual, menghapuskan keperluan untuk fungsi penggunaan yang kompleks.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membahagikan Lajur Kamus Bersarang dengan Cekap dalam Pandas DataFrames dengan Panjang Tidak Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn