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

Bagaimanakah Saya Boleh Mengubah Lajur Senarai Panda kepada Berbilang Baris?

Susan Sarandon
Susan Sarandonasal
2024-11-27 07:49:09975semak imbas

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

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

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')

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!

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