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!