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
Lepaskan: 2024-12-28 06:27:15
asal
887 orang telah melayarinya

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)
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan