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
Lepaskan: 2024-12-16 21:10:14
asal
195 orang telah melayarinya

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

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

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

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 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