Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Meletupkan Senarai Bersarang ke dalam Baris Individu dalam Bingkai Data Pandas?

Bagaimana untuk Meletupkan Senarai Bersarang ke dalam Baris Individu dalam Bingkai Data Pandas?

Mary-Kate Olsen
Lepaskan: 2024-11-12 03:10:02
asal
528 orang telah melayarinya

How to Explode Nested Lists into Individual Rows in a Pandas Dataframe?

Meletupkan Senarai Bersarang Menjadi Baris Individu dalam Bingkai Data Pandas

Dalam bidang manipulasi data dengan panda, keperluan sering timbul untuk menyusun semula data disimpan sebagai senarai bersarang ke dalam baris individu. Pertimbangkan bingkai data di mana lajur "nearrest_neighbors" mengandungi senarai nilai. Objektifnya adalah untuk "meletupkan" senarai ini, mencipta baris berasingan untuk setiap nilai dalam senarai.

Panda 0.25 Memudahkan Senarai Meletup dengan Kaedah explode()

Untuk panda versi 0.25 dan lebih baru, mengembangkan senarai dalam lajur dipermudahkan dengan ketara dengan pengenalan kaedah explode(). Untuk menunjukkan kefungsiannya, mari kita cipta semula contoh kerangka data:

import pandas as pd

# Original DataFrame
df = pd.DataFrame({'name': ['A.J. Price'] * 3, 
                    'opponent': ['76ers', 'blazers', 'bobcats'], 
                    'nearest_neighbors': [['Zach LaVine', 'Jeremy Lin', 'Nate Robinson', 'Isaia']] * 3})

# Set the index for easier reference
df = df.set_index(['name', 'opponent'])
Salin selepas log masuk

Meletupkan Senarai Bersarang

Menggunakan kaedah explode(), kita boleh membahagikan "neast_neighbors" lajur dengan elemen senarainya, mencipta baris berasingan untuk setiap nilai:

# Explode the list-like column
df_exploded = df.explode('nearest_neighbors')
Salin selepas log masuk

Output selepas Meletup

print(df_exploded)
Salin selepas log masuk
                    nearest_neighbors
name       opponent                  
A.J. Price 76ers          Zach LaVine
           76ers           Jeremy Lin
           76ers        Nate Robinson
           76ers                Isaia
           blazers        Zach LaVine
           blazers         Jeremy Lin
           blazers      Nate Robinson
           blazers              Isaia
           bobcats        Zach LaVine
           bobcats         Jeremy Lin
           bobcats      Nate Robinson
           bobcats              Isaia
Salin selepas log masuk

Seperti yang anda lihat, setiap nilai daripada senarai dalam lajur "nearrest_neighbors" kini diwakili sebagai baris berasingan dalam indeks lawannya yang sepadan.

Kaedah Lain untuk Peluasan Senarai

Untuk versi panda sebelum 0.25, terdapat pendekatan lain untuk mengembangkan senarai dalam lajur. Kaedah ini memerlukan gabungan operasi seperti aplikasi, lambda dan pemahaman senarai. Walau bagaimanapun, dengan pengenalan kaedah explode(), pendekatan yang lebih kompleks ini tidak lagi diperlukan.

Atas ialah kandungan terperinci Bagaimana untuk Meletupkan Senarai Bersarang ke dalam Baris Individu dalam Bingkai Data Pandas?. 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