Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Memisahkan Rentetan Dipisahkan Koma dalam Bingkai Data Pandas kepada Baris Berasingan?

Bagaimanakah Saya Boleh Memisahkan Rentetan Dipisahkan Koma dalam Bingkai Data Pandas kepada Baris Berasingan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-01 02:21:08343semak imbas

How Can I Split Comma-Separated Strings in a Pandas DataFrame into Separate Rows?

Memisahkan Rentetan Bingkai Data Panda Dipisahkan Koma kepada Baris Berasingan

Dalam bingkai data panda, selalunya terdapat satu atau lebih lajur mengandungi koma- nilai dipisahkan (CSV) yang perlu dibahagikan kepada baris individu. Untuk mencapai matlamat ini, beberapa pendekatan boleh digunakan:

Menggunakan Series.explode() atau DataFrame.explode():

Kaedah ini tersedia dalam Pandas 0.25.0 dan ke atas dan direka khusus untuk meletup seperti senarai lajur.

df.explode('column_name')

Menggunakan Fungsi Vektor:

Untuk situasi yang melibatkan berbilang lajur senarai biasa dan berbilang, fungsi tervektor boleh menyediakan penyelesaian yang lebih serba boleh.

def explode(df, lst_cols, fill_value='', preserve_index=False):
    # ... (implementation details)

Menukar Rentetan CSV kepada Senarai:

Jika matlamatnya adalah semata-mata untuk menukar rentetan CSV kepada senarai, ini boleh dicapai dengan membelah rentetan menggunakan str.split().

df['var1'] = df['var1'].str.split(',')

Pendekatan Vektor Tersuai:

Pendekatan ini boleh mengendalikan berbilang lajur, termasuk kedua-dua lajur biasa dan senarai lajur.

exploded_df = pd.DataFrame({
    col: np.repeat(x[col].values, x[lst_col].str.len())
    for col in x.columns.difference([lst_col])
}).assign(**{lst_col: np.concatenate(x[lst_col].values)})[x.columns.tolist()]

Penyelesaian Warisan:

Kaedah terdahulu melibatkan penggunaan .set_index(), .str.split(), .stack(), dan .reset_index() untuk memisahkan rentetan CSV dan menyusunnya ke dalam baris individu.

Pendekatan ini menawarkan pelbagai pilihan untuk memisahkan rentetan yang dipisahkan koma dalam bingkai data Pandas, memenuhi keperluan khusus dan pertimbangan prestasi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memisahkan Rentetan Dipisahkan Koma dalam Bingkai Data Pandas 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