ビッグデータ処理に Python 正規表現を使用する方法

王林
リリース: 2023-06-23 10:03:36
オリジナル
925 人が閲覧しました

データ処理の過程で、大量のデータをフィルタリングしてクリーンアップする必要がある場合がありますが、このとき、Python の正規表現を使用すると、データ処理の効率が大幅に向上します。ここでは、Python 正規表現をビッグデータ処理に使用する方法を紹介します。

  1. データの準備

まず、500,000 個の中国語テキストを含むデータ セットなど、処理する必要があるデータを準備する必要があります。このデータセットはインターネットから入手することも、自分で作成することもできます。

  1. Import re module

Python 正規表現を使用する前に、Python の組み込み re モジュールをインポートする必要があります。このモジュールには、よく使用される正規表現関連の関数とメソッドが多数用意されています。

import re
ログイン後にコピー
  1. 正規表現構文の概要

正規表現は文字列を照合するために使用される式であり、その構文は比較的複雑ですが、一般的に使用される構文をマスターした後、データ処理の効率が大幅に向上します。

3.1. 式

正規表現の基本構文は、一連の文字とメタキャラクターで構成される式です。このうち、character は一致する文字列内の文字を表し、metacharacter は特定の種類の文字を表します。

3.2. メタキャラクター

メタキャラクターは、単一文字のメタキャラクターと結合された文字のメタキャラクターに分類されます。

単一文字のメタ文字には次のものが含まれます:

  • .: 任意の文字 (改行を除く) と一致します。
  • w: 任意の文字、数字、またはアンダースコアと一致します。
  • d: 任意の数値と一致します。
  • s: 任意の空白文字 (スペース、タブ、改行などを含む) と一致します。
  • W: 文字、数字、またはアンダースコア以外の文字と一致します。
  • D: 数値以外の文字と一致します。
  • S: 空白以外の任意の文字と一致します。

結合文字メタ文字には次のものがあります。

  • []: 角括弧内の任意の文字と一致します。
  • -: ハイフンを表し、任意の数値と一致する [0-9] などの範囲を表すために使用されます。
  • ^: 非を意味し、一致しない文字を示すために使用されます。たとえば、1 は、小文字以外のアルファベット文字と一致することを意味します。
  • |: またはを意味し、複数の正規表現と一致するために使用されます。たとえば、a|b は文字 a または文字 b と一致することを意味します。

3.3. 数量子

数量子は、一致する文字の数を示すために使用されます。一般的に使用される数量子は次のとおりです:

  • *: 任意の文字を示します, 0 以上に一致します。
  • : 1 つ以上に一致する任意の文字を示します。
  • ?: 0 または 1 に一致する任意の文字を示します。
  • {}: 任意の文字を示し、指定された数値と一致します。たとえば、{3,5} は 3 ~ 5 文字と一致することを意味します。
  1. データ処理に正規表現を使用する

上記の正規表現の構文を紹介した後、データ処理に正規表現を使用できるようになります。以下では、データ処理に正規表現を使用する方法を示す簡単な例を示します。

4.1. データの読み取り

最初にデータを読み取る必要があります。ここでは、Python の組み込み open 関数を使用して読み取るか、サードパーティのライブラリ pandas を使用するかを選択できます。読むこと。

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

data = pd.read_csv('data.csv', encoding='utf-8')
ログイン後にコピー

4.2. データ クリーニングに正規表現を使用する

データ内の携帯電話番号をフィルタリングし、フィルタリングされたデータを新しいファイルに保存する必要があるとします。この例では、携帯電話番号が 11 桁であると仮定します。

上記の正規表現構文では、d は任意の数値と一致することを意味し、{11} は 11 個の数値と一致する必要があることを意味します。したがって、完全な正規表現は次のように記述できます:

regexp = r'd{11}'
ログイン後にコピー

次に、Python の re モジュールを使用してデータをフィルタリングし、クリーンアップします。まず、データをメモリに読み取り、次に正規表現を使用して照合と抽出を行います。

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))
ログイン後にコピー

上記のコードにより、正規表現を使用してすべての携帯電話番号を照合し、result.txt ファイルに保存することができました。

  1. 概要

この記事では、ビッグ データ処理に Python 正規表現を使用する方法を紹介しました。 Python の組み込み re モジュールには、一般的に使用される多くの正規表現関数とメソッドが用意されており、正規表現の構文をマスターすることで、ビッグ データ処理におけるデータのフィルタリング、クリーニング、その他の操作を迅速かつ効率的に実行できます。


  1. a-z

以上がビッグデータ処理に Python 正規表現を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート