Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah saya boleh memisahkan rentetan teks kepada berbilang baris berdasarkan pembatas tertentu menggunakan Panda?

Bagaimanakah saya boleh memisahkan rentetan teks kepada berbilang baris berdasarkan pembatas tertentu menggunakan Panda?

Barbara Streisand
Lepaskan: 2024-11-10 08:40:03
asal
434 orang telah melayarinya

How can I split text strings into multiple rows based on specific delimiters using Pandas?

Kaedah Pandas untuk Memisahkan Teks kepada Berbilang Baris

Masalah:
Fail CSV yang besar mengandungi lajur dengan rentetan teks yang perlu dipecahkan kepada berbilang baris berdasarkan pembatas tertentu. Matlamatnya ialah untuk mencipta baris berasingan bagi setiap set teks pecahan.

Penyelesaian menggunakan Panda:

  1. Pisah teks dengan pembatas pertama (ruang) menggunakan str.split(' ').
  2. Gunakan fungsi apply() untuk memisahkan setiap rentetan dalam senarai dengan pembatas kedua (titik bertindih) dan tukarkannya kepada satu siri.
  3. Gunakan tindanan() untuk menukar DataFrame yang terhasil kepada satu lajur dan menetapkan semula indeks.
  4. Namakan semula lajur kepada 'Sekat tempat duduk'.
  5. Lepaskan lajur 'Seatblocks' asal daripada DataFrame.
  6. Sertai yang baharu Lajur 'sekat tempat duduk' ke DataFrame asal.

Dipisahkan oleh Ruang dan Titik Bertitik:

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

Contoh Output:

   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

Berpisah mengikut Kolon:

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

Contoh Output:

   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

Atas ialah kandungan terperinci Bagaimanakah saya boleh memisahkan rentetan teks kepada berbilang baris berdasarkan pembatas tertentu menggunakan Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan