Pertama-tama, ketika saya menjalankan ini, tanda baca tidak dihapus, jadi saya bertanya-tanya apakah ada yang salah dengan ekspresi saya? Show
Kedua, saya mencoba untuk menghasilkan. csv daftar semua kata yang ditandai dengan tanda baca atau tidak, e. g. file teks bertuliskan "Halo. Ini hari yang menyenangkan. " akan keluar
Saya tahu saya bisa menggunakannya. split() untuk memisahkan kata-kata tetapi selain itu saya tidak tahu bagaimana cara melakukannya. Bantuan apa pun akan dihargai Saat bekerja dengan data tekstual, terkadang kita perlu melakukan beberapa transformasi pembersihan. Salah satunya biasanya adalah penghapusan tanda baca yang mungkin terjadi sebelum tokenisasi Pada artikel hari ini kami akan menampilkan beberapa pendekatan berbeda untuk menghapus tanda baca dari kolom string di pandas DataFrames. Lebih khusus lagi, kami akan membahas penghapusan tanda baca menggunakan
Pertama, mari buat contoh DataFrame yang akan kami rujuk di seluruh artikel ini untuk mendemonstrasikan beberapa konsep import pandas as pd Menggunakan str. replace() dan ekspresi regulerOpsi pertama yang kita miliki di sini, adalah metode df['colD'] = df['colD'].str.replace(r'[^\w\s]+', '')print(df)_1 yang dapat digunakan untuk menggantikan setiap kejadian ekspresi reguler yang disediakan dalam objek Seri Jadi satu ekspresi reguler yang akan membantu kita adalah df['colD'] = df['colD'].str.replace(r'[^\w\s]+', '')print(df)2. Untuk memahami cara kerja regex ini, pertimbangkan fakta bahwa apa pun yang merupakan tanda baca sebenarnya adalah apa pun yang bukan kata atau kalimat. Jadi kami menggunakan negasi (i. e. df['colD'] = df['colD'].str.replace(r'[^\w\s]+', '')print(df)_3 ) untuk menunjukkan bahwa kami ingin mengganti non-kata dan non-kalimat (i. e. karakter tanda baca) dengan string kosong df['colD'] = df['colD'].str.replace(r'[^\w\s]+', '')print(df)_ Menggunakan re. metode sub()Sekarang alternatif lain adalah metode df['colD'] = df['colD'].str.replace(r'[^\w\s]+', '')print(df)_4 dalam paket df['colD'] = df['colD'].str.replace(r'[^\w\s]+', '')print(df)5 yang menyediakan operasi pencocokan ekspresi reguler df['colD'] = df['colD'].str.replace(r'[^\w\s]+', '')print(df)_6 Kami akan menggunakan ekspresi reguler yang sama yang telah kami gunakan di bagian sebelumnya import redf['colD']=[re.sub('[^\w\s]+', '', s) for s in df['colD'].tolist()] Perhatikan juga bahwa terkadang lebih efisien untuk terlebih dahulu mengompilasi ekspresi reguler sebelum substitusi. Sebagai contoh, import re Menggunakan str. menerjemahkan() metodeTerakhir, pendekatan lain adalah menggunakan metode import redf['colD']=[re.sub('[^\w\s]+', '', s) for s in df['colD'].tolist()]_1 yang memetakan semua karakter dalam string input melalui tabel pemetaan yang diberikan Intuisi di balik pendekatan kami adalah menggabungkan semua string pada setiap baris menjadi satu, menjadi string besar, di mana setiap string individu akan dipisahkan oleh pemisah pilihan kami. Sebagai contoh, kita akan menggunakan karakter import redf['colD']=[re.sub('[^\w\s]+', '', s) for s in df['colD'].tolist()]2 sebagai pemisah. Jadi pertama-tama kita perlu membuat string yang berisi karakter tanda baca yang ingin kita hilangkan dari string. Perhatikan bahwa pemisah TIDAK HARUS disertakan di sini. Jelas, pemisah yang dipilih tidak boleh ada di salah satu string yang ada jika tidak, pendekatan ini tidak akan berfungsi sep = '|' Sekarang kita perlu menggunakan metode import redf['colD']=[re.sub('[^\w\s]+', '', s) for s in df['colD'].tolist()]_3 untuk membuat tabel pemetaan untuk terjemahan yang dapat digunakan untuk metode import redf['colD']=[re.sub('[^\w\s]+', '', s) for s in df['colD'].tolist()]4 mapping_table = str.maketrans(dict.fromkeys(punctuation_chars, '')) Sekarang apa yang perlu kita lakukan pada DataFrame panda kita adalah menggabungkan semua string di kolom import redf['colD']=[re.sub('[^\w\s]+', '', s) for s in df['colD'].tolist()]5 menggunakan pemisah yang dipilih import redf['colD']=[re.sub('[^\w\s]+', '', s) for s in df['colD'].tolist()]6. Kemudian lakukan df['colD'] = df['colD'].str.replace(r'[^\w\s]+', '')print(df)_0 menggunakan tabel pemetaan yang kami buat untuk menghapus karakter tanda baca yang ditentukan dalam import redf['colD']=[re.sub('[^\w\s]+', '', s) for s in df['colD'].tolist()]8 dan akhirnya import redf['colD']=[re.sub('[^\w\s]+', '', s) for s in df['colD'].tolist()]9 string yang dihasilkan pada pemisah import redf['colD']=[re.sub('[^\w\s]+', '', s) for s in df['colD'].tolist()]6 dan tetapkan hasilnya kembali ke kolom df['colD'] = sep \ Dan kolom target tidak boleh memiliki karakter tanda baca sama sekali print(df) Perhatikan bahwa metode ini diimplementasikan dalam C sehingga diharapkan cukup efisien dan cepat Pikiran AkhirDalam tutorial singkat hari ini, kami menjelajahi beberapa pendekatan berbeda yang dapat diterapkan untuk menghapus tanda baca dari kolom string di panda DataFrames Secara lebih khusus kami memamerkan bagaimana melakukannya, menggunakan tiga pendekatan yang berbeda — df['colD'] = df['colD'].str.replace(r'[^\w\s]+', '')print(df)0 dan regex.sub() . Perhatikan bahwa pendekatan yang berbeda mungkin memiliki kinerja yang berbeda secara signifikan (dalam hal kinerja dan efisiensi) pada ukuran kumpulan data yang berbeda. Jadi cara terbaik untuk memilih salah satu yang tepat untuk kasus penggunaan khusus Anda adalah dengan membandingkan hasilnya satu sama lain dan memilih yang lebih sesuai.Jadilah anggota dan baca setiap cerita di Medium. Biaya keanggotaan Anda secara langsung mendukung saya dan penulis lain yang Anda baca. Anda juga akan mendapatkan akses penuh ke setiap cerita di Medium Bagaimana Anda menghapus tanda baca dari kumpulan data dengan Python?Cara Menghapus Tanda Baca Dari Panda . str. mengganti() regex. sub() dan str. menerjemahkan() Bagaimana cara menghapus tanda baca dari daftar dalam string Python?Metode 1. Menggunakan Loop + Tanda Baca String
. Dalam pendekatan ini, kami mengulangi string yang ingin kami bersihkan, memeriksa setiap karakter. Saat mengulang, kami menambahkan karakter saat ini di akhir string baru. use the basic for loop. In this approach, we loop through the string we wish to clean, checking each character. While looping through, we add the current character at the end of a new string.
Bagaimana cara menghapus semua tanda baca dari string di DataFrame Python?tanda baca) def hapus_tanda baca(x). """ Helper berfungsi untuk menghilangkan tanda baca dari string x. setiap string """ coba. x = ''. bergabung(ch untuk ch di x jika ch tidak dikecualikan) kecuali. pass return x # Terapkan fungsi ke pelanggan DataFrame.
Bagaimana Anda menghapus karakter khusus dan tanda baca di Python?Salah satu metode termudah dan tercepat untuk menghapus tanda baca dan karakter khusus dari sebuah string adalah dengan menggunakan metode terjemahan (). The built-in translate () function is available in the string library of Python. |