pandasが利用するPython標準の正規表現モジュールreは、Unicodeプロパティ(\p{Hiragana}
など)に対応していません。提示されたエラーはそれが原因です。
いっぽう、reに対して後方互換性を持つregexパッケージが存在し、こちらはUnicodeプロパティにある程度対応しています。
regex · PyPI
This regex implementation is backwards-compatible with the standard ‘re’ module, but offers additional functionality.
そこで、replace
を使う代わりに、regexで同様の処理を行なう関数regex.subn
をapply
で呼び出すようにすれば、Unicodeプロパティを使った置換処理を行なえます。
Python
1import pandas as pd
2import io
3import regex
4
5txt = """
6BANGO
7これはregexをpandasに適用するテストです。
8"""
9
10df = pd.read_csv(io.StringIO(txt))
11# print(df)
12
13print(df['BANGO'].apply(lambda x: regex.subn(
14 r'(?:\p{Hiragana}|\p{Script=Han})+', '', x)[0]))
result
10 regexpandasテスト。
2Name: BANGO, dtype: object
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/20 21:36
2021/01/21 00:27