Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan ungkapan biasa Python untuk pemprosesan data besar

Cara menggunakan ungkapan biasa Python untuk pemprosesan data besar

王林
王林asal
2023-06-23 10:03:36879semak imbas

Dalam proses pemprosesan data, kadangkala kita perlu menapis dan membersihkan sejumlah besar data Pada masa ini, menggunakan ungkapan biasa Python boleh meningkatkan kecekapan pemprosesan data. Berikut akan memperkenalkan cara menggunakan ungkapan biasa Python untuk pemprosesan data besar.

  1. Sediakan data

Pertama, anda perlu menyediakan data yang perlu diproses, seperti set data yang mengandungi 500,000 teks Mandarin. Set data ini boleh diperolehi dari Internet atau dibuat sendiri.

  1. Import modul semula

Sebelum menggunakan ungkapan biasa Python, anda perlu mengimport modul semula terbina dalam Python Modul ini menyediakan banyak Fungsi berkaitan ungkapan biasa dan kaedah.

import re
  1. Pengenalan kepada sintaks ungkapan biasa

Ungkapan biasa ialah ungkapan yang digunakan untuk memadankan rentetan sintaksnya agak rumit, tetapi selepas menguasai yang biasa digunakan Selepas sintaks, kecekapan pemprosesan data bertambah baik.

3.1. Ungkapan

Sintaks asas ungkapan biasa ialah ungkapan yang terdiri daripada satu siri aksara dan aksara meta. Antaranya, watak mewakili watak dalam rentetan yang sepadan, dan metacharacter mewakili jenis watak tertentu.

3.2. Metacharacter

Metacharacter dibahagikan kepada metacharacter aksara tunggal dan metacharacter gabungan.

Metacharacter aksara tunggal termasuk:

  • .: sepadan dengan mana-mana aksara (kecuali baris baharu).
  • w: Padankan mana-mana huruf, nombor atau garis bawah.
  • d: Padankan sebarang nombor.
  • s: Padankan mana-mana aksara ruang putih (termasuk ruang, tab, baris baharu, dsb.).
  • W: Memadankan mana-mana aksara bukan huruf, nombor atau garis bawah.
  • D: Padan dengan mana-mana aksara bukan angka.
  • S: Padan dengan mana-mana aksara bukan ruang putih.

Metakarakter aksara gabungan termasuk:

  • []: sepadan dengan mana-mana aksara dalam kurungan segi empat sama.
  • -: mewakili tanda sempang, digunakan untuk mewakili julat, seperti [0-9] untuk memadankan sebarang aksara angka.
  • ^: bermaksud bukan, digunakan untuk menunjukkan aksara yang tidak sepadan, seperti 1 bermaksud memadankan mana-mana aksara abjad bukan huruf kecil.
  • |: bermaksud atau, digunakan untuk memadankan berbilang ungkapan biasa, seperti a|b bermaksud memadankan aksara a atau aksara b.

3.3. Pengkuantiti

Pengkuantiti digunakan untuk menunjukkan bilangan aksara yang sepadan yang biasa digunakan adalah seperti berikut:

  • *: menunjukkan sebarang aksara. , sepadan dengan 0 atau lebih.
  • +: mewakili mana-mana watak, sepadan dengan 1 atau lebih.
  • ?: Menunjukkan sebarang aksara, sepadan dengan 0 atau 1.
  • {}: Menunjukkan sebarang aksara, memadankan nombor yang ditentukan, seperti {3,5} bermakna memadankan 3 hingga 5 aksara.
  1. Gunakan ungkapan biasa untuk pemprosesan data

Selepas memperkenalkan sintaks ungkapan biasa di atas, kita boleh mula menggunakan ungkapan biasa untuk pemprosesan data . Berikut akan mengambil contoh mudah untuk menunjukkan cara menggunakan ungkapan biasa untuk pemprosesan data.

4.1. Membaca data

Mula-mula, anda perlu membaca data masuk. Di sini anda boleh memilih untuk menggunakan fungsi terbuka terbina dalam Python untuk membaca, atau anda boleh menggunakan perpustakaan pihak ketiga panda untuk dibaca.

# 使用pandas读取数据
import pandas as pd

data = pd.read_csv('data.csv', encoding='utf-8')

4.2. Gunakan ungkapan biasa untuk pembersihan data

Andaikan sekarang anda perlu menapis nombor telefon mudah alih dalam data dan menyimpan data yang ditapis ke fail baharu. Dalam contoh ini, kami menganggap bahawa nombor telefon bimbit ialah 11 digit.

Dalam sintaks ungkapan biasa di atas, d bermaksud memadankan sebarang nombor dan {11} bermakna 11 nombor tersebut perlu dipadankan. Jadi ungkapan biasa yang lengkap boleh ditulis sebagai:

regexp = r'd{11}'

Kemudian kita boleh menggunakan modul semula Python untuk menapis dan membersihkan data Mula-mula, baca data ke dalam memori, dan kemudian gunakan ungkapan biasa untuk pemadanan dan pengekstrakan.

import re

with open('data.csv', encoding='utf-8') as f:
    lines = f.readlines()
# 使用正则表达式进行数据清洗
result = []
regexp = r'd{11}'
for line in lines:
    match_obj = re.search(regexp, line)
    # 如果匹配成功,则把匹配的内容加入到result
    if match_obj:
        result.append(match_obj.group(0))

# 把结果写入到文件中
with open('result.txt', 'w', encoding='utf-8') as f:
    f.write('
'.join(result))

Melalui kod di atas, kami berjaya menggunakan ungkapan biasa untuk memadankan semua nombor telefon mudah alih dan menyimpannya dalam fail result.txt.

  1. Ringkasan

Dalam artikel ini, kami memperkenalkan cara menggunakan ungkapan biasa Python untuk pemprosesan data besar. Modul semula terbina dalam Python menyediakan banyak fungsi dan kaedah ungkapan biasa yang biasa digunakan Dengan menguasai sintaks ungkapan biasa, kami boleh melakukan penapisan data, pembersihan dan operasi lain dengan cepat dan cekap dalam pemprosesan data besar.


  1. a-z

Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa Python untuk pemprosesan data besar. 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