Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Kaedah Pandas\' `.explode()` Mengubah Lajur Berdasarkan Senarai kepada Baris Berasingan?

Bagaimanakah Kaedah Pandas\' `.explode()` Mengubah Lajur Berdasarkan Senarai kepada Baris Berasingan?

Linda Hamilton
Linda Hamiltonasal
2024-11-29 20:25:11965semak imbas

How Can Pandas' `.explode()` Method Transform List-Based Columns into Separate Rows?

Mengeksploitasi Kaedah .explode() Panda untuk Membongkar Senarai ke dalam Baris

Dalam Panda, berurusan dengan DataFrames yang mengandungi lajur senarai boleh mencabar apabila anda ingin memiliki setiap elemen senarai diwakili sebagai baris yang berasingan. Di sinilah kaedah .explode() dimainkan.

Panda ≥ 0.25

Untuk Pandas versi 0.25 dan ke atas, penukar permainan ialah .explode( ) kaedah. Ia membolehkan anda meletupkan lajur seperti senarai ke dalam baris yang berasingan, sekali gus menukarnya daripada bentuk panjang kepada bentuk lebar.

import pandas as pd

# Sample DataFrame
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)]
})

# Explode using .explode()
exploded_df = df.explode('samples')

# Reset index to be monotonically increasing (optional)
exploded_df = exploded_df.reset_index(drop=True)

print(exploded_df)

# Output:
#    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        1          3    1.18
# 7        2          1   -0.08
# 8        2          1   -4.22
# 9        2          1   -2.05
# 10       2          2    0.72
# 11       2          2    0.79
# 12       2          2    0.53
# 13       2          3    0.4
# 14       2          3   -0.32
# 15       2          3   -0.13

Perhatikan bahawa .explode() beroperasi pada satu lajur pada satu masa. Untuk lajur yang mengandungi jenis bercampur (cth., senarai dan skalar), .explode() berkelakuan dengan wajar dan mengekalkan senarai kosong dan NaN.

Atas ialah kandungan terperinci Bagaimanakah Kaedah Pandas\' `.explode()` Mengubah Lajur Berdasarkan Senarai kepada Baris Berasingan?. 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