Bagaimana untuk Memisahkan Teks dalam Lajur Panda kepada Berbilang Baris?

DDD
Lepaskan: 2024-11-11 01:02:03
asal
688 orang telah melayarinya

How to Split Text in a Pandas Column into Multiple Rows?

Memisahkan Teks dalam Lajur kepada Berbilang Baris menggunakan Panda

Apabila mengendalikan fail CSV yang besar, adalah perlu untuk memanipulasi data dengan cekap. Satu tugas biasa adalah untuk memisahkan teks dalam lajur kepada berbilang baris. Ini boleh dicapai menggunakan Pandas, perpustakaan manipulasi data yang berkuasa dalam Python.

Andaikan kita mempunyai fail CSV dengan lajur bernama "Seatblocks" yang mengandungi nilai teks yang dipisahkan oleh ruang dan titik bertindih. Matlamat kami adalah untuk membahagikan setiap nilai dalam lajur ini kepada baris individu, mencipta lajur baharu untuk setiap bahagian yang dipisahkan bertindih.

CustNum  CustomerName     ItemQty  Item   Seatblocks                 ItemExt
32363    McCartney, Paul      3     F04    2:218:10:4,6                   60
31316    Lennon, John        25     F01    1:13:36:1,12 1:13:37:1,13     300
Salin selepas log masuk

Untuk membahagikan lajur "Sekat tempat duduk" mengikut ruang dan memberikan setiap bahagian baris yang berasingan, kami menggunakan kod berikut:

s = df['Seatblocks'].str.split(' ').apply(Series, 1).stack()
s.index = s.index.droplevel(-1)
s.name = 'Seatblocks'
del df['Seatblocks']
df = df.join(s)
Salin selepas log masuk

Kod ini menghasilkan output berikut:

   CustNum     CustomerName  ItemQty Item  ItemExt  Seatblocks
0    32363  McCartney, Paul        3  F04       60  2:218:10:4,6
1    31316     Lennon, John       25  F01      300  1:13:36:1,12
1    31316     Lennon, John       25  F01      300  1:13:37:1,13
Salin selepas log masuk

Untuk memisahkan setiap rentetan yang dipisahkan bertindih dalam lajurnya sendiri, kita boleh menggunakan kod berikut:

df.join(s.apply(lambda x: Series(x.split(':'))))
Salin selepas log masuk

Ini menghasilkan perkara berikut:

   CustNum     CustomerName  ItemQty Item  ItemExt  0    1   2     3
0    32363  McCartney, Paul        3  F04       60  2  218  10   4,6
1    31316     Lennon, John       25  F01      300  1   13  36  1,12
1    31316     Lennon, John       25  F01      300  1   13  37  1,13
Salin selepas log masuk

Kaedah ini menyediakan cara yang berkesan untuk memisahkan teks dalam lajur kepada berbilang baris, membolehkan manipulasi dan analisis data selanjutnya.

Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Teks dalam Lajur 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan