Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Membahagikan Lajur Rentetan dalam Bingkai Data Pandas kepada Dua Lajur Baharu dengan Cekap?

Bagaimana untuk Membahagikan Lajur Rentetan dalam Bingkai Data Pandas kepada Dua Lajur Baharu dengan Cekap?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-24 12:55:14849semak imbas

How to Efficiently Split a String Column in a Pandas DataFrame into Two New Columns?

Bagaimanakah untuk Memisahkan Lajur Rentetan Bingkai Data kepada Dua Lajur?

versi TL;DR :

Untuk kes mudah mempunyai lajur teks dengan pembatas dan ingin mencipta dua lajur, penyelesaian paling mudah ialah:

df[['A', 'B']] = df['AB'].str.split(' ', n=1, expand=True)

Secara terperinci:

Pendekatan Andy Hayden secara berkesan menunjukkan kuasa str.extract () kaedah. Walau bagaimanapun, untuk pemisahan mudah ke atas pemisah yang diketahui, kaedah .str.split() adalah mencukupi. Ia beroperasi pada lajur (Siri) rentetan dan mengembalikan lajur (Siri) senarai.

Atribut .str lajur membolehkan kami merawat setiap elemen dalam lajur sebagai rentetan dan menggunakan kaedah dengan cekap. Ia mempunyai antara muka pengindeksan untuk mendapatkan setiap elemen rentetan mengikut indeksnya, membolehkan kami memotong dan memotong senarai yang dikembalikan daripada .str.split().

Pembukaan tuple Python boleh digunakan untuk mencipta dua lajur berasingan daripada senarai menggunakan:

df['A'], df['B'] = df['AB'].str.split('-', n=1).str

Sebagai alternatif, seseorang boleh menggunakan parameter expand=True dalam .str.split() untuk terus menjana dua lajur:

df[['A', 'B']] = df['AB'].str.split('-', n=1, expand=True)

Versi expand=True adalah berfaedah apabila berurusan dengan belahan panjang yang berbeza, kerana ia mengendalikan kes sedemikian dengan memasukkan None nilai dalam lajur dengan tiada "berpecah".

Atas ialah kandungan terperinci Bagaimana untuk Membahagikan Lajur Rentetan dalam Bingkai Data Pandas kepada Dua Lajur Baharu dengan Cekap?. 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