Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mengubah Lajur Senarai Panda kepada Berbilang Baris?

Bagaimanakah Saya Boleh Mengubah Lajur Senarai Panda kepada Berbilang Baris?

Susan Sarandon
Lepaskan: 2024-11-27 07:49:09
asal
1020 orang telah melayarinya

How Can I Transform a Pandas Column of Lists into Multiple Rows?

Lajur Senarai Panda: Mencipta Baris untuk Setiap Elemen Senarai

Dalam bingkai data Pandas, mungkin perlu menukar lajur yang mengandungi senarai menjadi berbilang baris, di mana setiap elemen senarai menduduki barisnya sendiri. Untuk mencapai matlamat ini, terdapat dua pilihan yang berdaya maju.

Kaedah letupan Terbina Dalam Pandas>=0.25

Untuk Pandas versi 0.25 dan lebih baru, .explode( ) kaedah telah diperkenalkan khusus untuk tujuan ini. Ia cekap menukar senarai ke dalam baris individu.

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

df.explode('samples').reset_index(drop=True)  # Resetting the index for clarity
Salin selepas log masuk

Kaedah ini mengendalikan lajur bercampur yang mengandungi senarai dan skalar, serta senarai kosong dan NaN. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa letupan beroperasi pada satu lajur pada satu masa.

Fungsi Tersuai untuk Panda <0.25

Untuk versi terdahulu Panda, a fungsi tersuai boleh digunakan:

def explode_list_column(df, column):
    # Create an empty list to store the expanded rows
    exploded_rows = []

    # Iterate through each cell in the specified column
    for row in df[column]:
        # Iterate through each element in the list
        for element in row:
            # Add a new row to the list, copying data from the current row and adding the new element
            exploded_rows.append(list(row) + [element])

    # Convert the expanded rows into a DataFrame
    return pd.DataFrame(exploded_rows, columns=df.columns + ['list_element'])
Salin selepas log masuk

Fungsi ini mengambil DataFrame dan nama lajur yang mengandungi disenaraikan sebagai parameter dan ia mengembalikan DataFrame baharu dengan lajur untuk setiap elemen senarai.

# Applying the exploding function
exploded_df = explode_list_column(df, 'samples')
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Lajur Senarai Panda kepada Berbilang Baris?. 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