Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Meletupkan Lajur Seperti Senarai dengan Berkesan dalam Pandas DataFrames?

Bagaimana untuk Meletupkan Lajur Seperti Senarai dengan Berkesan dalam Pandas DataFrames?

Barbara Streisand
Lepaskan: 2024-11-27 15:44:11
asal
898 orang telah melayarinya

How to Effectively Explode List-Like Columns in Pandas DataFrames?

Meletup Lajur Seperti Senarai: Panduan Memperluas Bingkai Data

Masalah:

Dalam Bingkai data Pandas, sesetengah sel mungkin mengandungi senarai berbilang nilai. Matlamatnya adalah untuk mengubah bingkai data supaya setiap elemen senarai menduduki baris yang berasingan, sambil mengekalkan nilai dalam lajur lain.

Penyelesaian:

Kaedah 1: repeat()

Sebelum Pandas 0.25, kaedah repeat() ialah biasa digunakan untuk meletupkan lajur senarai:

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)]
    }
)

# Expand 'samples' column into separate rows using repeat()
df_exploded = df.assign(
    samples=df['samples'].str.join(',').str.split(',')
).explode('samples')

df_exploded = df_exploded.reset_index(drop=True)

# Add sample_num column to track list element order
df_exploded['sample_num'] = df_exploded.groupby('trial_num').cumcount()
Salin selepas log masuk

Kaedah 2: explode() (Panda >= 0.25)

Dengan keluaran Pandas 0.25, . kaedah explode() menyediakan kaedah yang elegan penyelesaian:

df.explode('samples').reset_index(drop=True)
Salin selepas log masuk

Kaedah ini secara automatik mengendalikan senarai kosong dan mengekalkan NaN, memastikan penukaran menyeluruh.

Nota:

  • The kaedah berasaskan ulangan boleh mengendalikan lajur rentetan yang meletup, tetapi memerlukan pemisahan pada pemisah pertama.
  • Kaedah explode() meletupkan satu lajur pada satu masa.
  • Bingkai data yang meletup mungkin memerlukan pemprosesan selanjutnya untuk mewujudkan indeks unik dan elemen senarai nombor semula.

Atas ialah kandungan terperinci Bagaimana untuk Meletupkan Lajur Seperti Senarai dengan Berkesan dalam Pandas DataFrames?. 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