Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah saya Boleh Kembangkan Senarai Bersarang dalam Pandas DataFrames ke dalam Baris Berasingan?

Bagaimanakah saya Boleh Kembangkan Senarai Bersarang dalam Pandas DataFrames ke dalam Baris Berasingan?

Linda Hamilton
Lepaskan: 2024-12-17 02:38:25
asal
567 orang telah melayarinya

How Can I Expand Nested Lists in Pandas DataFrames into Separate Rows?

Merungkai Senarai Bersarang dalam Pandas DataFrames: Peluasan Baris

Apabila bekerja dengan data dalam bingkai data Pandas, anda mungkin menghadapi lajur yang mengandungi senarai, yang mungkin merangkumi berbilang nilai. Untuk memudahkan analisis dan manipulasi, adalah perlu untuk mengubah senarai ini menjadi baris yang berasingan. Proses ini, yang dikenali sebagai "pembentukan panjang" atau "peluasan baris", membenarkan setiap elemen senarai menduduki barisnya sendiri.

Untuk mencapai ini, Pandas menawarkan kaedah khusus yang dipanggil .explode() , diperkenalkan dalam versi 0.25. Kaedah ini dengan lancar mengubah lajur yang mengandungi senarai yang ditentukan menjadi satu siri baris, dengan setiap elemen menjadi baris bebas.

Pelaksanaan:

Untuk menggunakan Kaedah .explode(), hanya nyatakan nama lajur yang anda ingin kembangkan. Secara lalai, ia akan mencipta baris baharu untuk setiap elemen dalam lajur, sambil mengekalkan nilai dalam semua lajur lain.

Sebagai contoh, pertimbangkan bingkai data yang mengandungi lajur 'sampel' dengan senarai nilai:

import pandas as pd
import numpy as np

df = pd.DataFrame(
    {'trial_num': [1, 2, 3, 1, 2, 3],
     'subject': [1, 1, 1, 2, 2, 2],
     'samples': [list(np.random.randn(3).round(2)) for i in range(6)]
    }
)
Salin selepas log masuk

Menggunakan .explode() kaedah:

df.explode('samples')
Salin selepas log masuk

Hasil dalam rangka data berikut:

   subject  trial_num  sample
0        1          1    0.57
1        1          1   -0.83
2        1          1    1.44
3        1          2   -0.01
4        1          2    1.13
5        1          2    0.36
6        2          1   -0.08
7        2          1   -4.22
8        2          1   -2.05
9        2          2    0.72
10       2          2    0.79
11       2          2    0.53
Salin selepas log masuk

Seperti yang anda boleh perhatikan, setiap elemen senarai kini mempunyai barisnya sendiri. Perlu diingat bahawa, walaupun kaedah membuka senarai senarai dengan cekap, ia melakukannya untuk satu lajur pada satu masa.

Pertimbangan Tambahan:

  • The Kaedah .explode() mengendalikan lajur bercampur yang mengandungi kedua-dua senarai dan nilai skalar, memastikan ia kosong senarai dan nilai NaN dipelihara dengan sewajarnya.
  • Jika bingkai data mempunyai berbilang lajur yang mengandungi senarai, anda boleh menggunakan panggilan .explode() bersarang untuk membukanya satu demi satu.
  • Jika anda inginkan pesanan lajur tertentu, anda boleh melaraskan semula susunan lajur secara manual selepas membuat panggilan .explode().
  • Menetapkan semula indeks menggunakan .reset_index(drop=True) disyorkan untuk mendapatkan indeks integer biasa.

Atas ialah kandungan terperinci Bagaimanakah saya Boleh Kembangkan Senarai Bersarang dalam Pandas DataFrames ke dalam Baris Berasingan?. 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