Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah saya boleh memisahkan lajur Pandas DataFrame kamus kepada lajur berasingan dengan cekap?

Bagaimanakah saya boleh memisahkan lajur Pandas DataFrame kamus kepada lajur berasingan dengan cekap?

Linda Hamilton
Linda Hamiltonasal
2024-12-16 21:10:14115semak imbas

How can I efficiently split a Pandas DataFrame column of dictionaries into separate columns?

Memisahkan Lajur Kamus kepada Lajur Asingkan dengan Panda

Apabila bekerja dengan bingkai data dalam Panda, adalah perkara biasa untuk menemui lajur yang mengandungi kamus nilai. Membahagikan lajur ini kepada lajur individu boleh meningkatkan organisasi dan kebolehcapaian data.

Pertimbangkan DataFrame berikut:

Station ID     Pollutants
8809           {"a": "46", "b": "3", "c": "12"}
8810           {"a": "36", "b": "5", "c": "8"}
8811           {"b": "2", "c": "7"}
8812           {"c": "11"}
8813           {"a": "82", "c": "15"}

Untuk memisahkan lajur "Pencemar" kepada "a", "b" yang berasingan, dan lajur "c", anda boleh menggunakan fungsi json_normalize yang diperkenalkan dalam versi Pandas 0.23.0:

import pandas as pd

df2 = pd.json_normalize(df['Pollutants'])

Pendekatan ini cekap dan mengelakkan penggunaan fungsi gunaan yang berpotensi mahal. DataFrame df2 yang terhasil akan kelihatan seperti ini:

Station ID     a      b       c
8809           46     3       12
8810           36     5       8
8811           NaN    2       7
8812           NaN    NaN     11
8813           82     NaN     15

Perhatikan bahawa DataFrame yang terhasil mengandungi nilai nol (NaN) untuk kekunci kamus yang hilang. Untuk mengendalikan kes ini, anda boleh menggunakan kaedah fillna untuk menggantikan nilai yang hilang dengan nilai lalai atau menggunakan logik tersuai.

Atas ialah kandungan terperinci Bagaimanakah saya boleh memisahkan lajur Pandas DataFrame kamus kepada lajur berasingan dengan cekap?. 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
Artikel sebelumnya:Hari - Fungsi rentetanArtikel seterusnya:Hari - Fungsi rentetan