Pythonで全角半角変換を一括置換するのは、なかなか困難なものです。
replaseも正規表現もあれこれ試したけど…
一括置換するいい方法はあるの?
ライブラリmojimojiなら、あっさり置換できます。
一括置換するならPandasデータフレームを使うのが簡便です。文字列の全角→半角、または半角→全角を一括置換できます。
pip install mojimojiでインストールできない場合は、『Windows 10 SDK』を入れればインストールできるようになります。
この記事では、Pythonで全角半角変換のためのライブラリmojimojiについて解説します。
もくじ
mojimojiの使い方
df['column'] = df['column'].apply(mojimoji.zen_to_han)
mojimojiの変換は、カタカナ、英字、数字の3タイプすべてに適用されます。
- カタカナ:アイズ → アイズ
- 英字:Full → Full
- 数字:2001 → 2001
変換したくない文字タイプがある場合は変換オプションを指定します。変換したくない文字タイプにFalseを指定します。
- カタカナの変換をキャンセル:kana=False
- 英字の変換をキャンセル:ascii=False
- 数字の変換をキャンセル:digit=False
カタカナの変換をキャンセル・kana=False
df['column'] = df['column'].apply(mojimoji.zen_to_han, kana=False)
カタカナ(1行目)だけ、変換がキャンセルされています。
英字の変換をキャンセル・ascii=False
df['column'] = df['column'].apply(mojimoji.zen_to_han, ascii=False)
英字(2行目)だけ、変換がキャンセルされています。
数字の変換をキャンセル・digit=False
df['column'] = df['column'].apply(mojimoji.zen_to_han, digit=False)
数字(3行目)だけ、変換がキャンセルされています。
mojimojiとpandasで一括置換
全角半角、または半角全角を一括置換したい場合は、pandasを使うと一発です。
pandasデータフレームのテキスト(str型)の列に当てれば一括置換できます。
import mojimoji
#全角 → 半角
df['column'] = df['column'].apply(mojimoji.zen_to_han)
#半角 → 全角
df['column'] = df['column'].apply(mojimoji.han_to_zen)
mojimojiのインストール方法
コマンドプロンプトから、pipコマンドでインストールします。
pip install mojimoji
mojimojiをインストールできないときは
このようなエラーが発生した場合は、『Windows SDK(ソフトウェア開発キット)』をインストールする必要があります。
『Windows SDK』のインストール(30分程度)は、.Net Frameworkのバージョンが4.5.1以上でなければ失敗してしまいます。
まず先に.Net Frameworkをインストール(2分程度)してみるのが良いです。
Microsoftダウンロードセンター > .Net Framework 4.5.1
『Windows SDK』を含むC++ Build Tools(visualcppbuildtools_full.exe)をダウンロードして実行します。次のどちらかの方法でダウンロードします。
- Microsoft VisualStudio:以前のバージョン > 再頒布可能パッケージおよびビルドツール > Microsoft Build Tools 2015 Update 3 > ダウンロード
- Microsoft Store:visualcppbuildtools_full.exe(いきなりダウンロードが始まります。)
なお、このexeファイルは手に入れづらいので、今後のために保管しておくとよいでしょう。
ダブルクリックするとインストールを開始できます。
カスタムインストールからWindowsOSのバージョンに合ったSDK(多くはWindows 10 SDKでしょう)を選択します。
インストールが成功したらPCを再起動します。
再度、mojimojiをpipインストールすると成功します。
まとめ
- 変換オプションは3つ。カタカナ、英字、数字。
- 全角半角、または半角全角の一括置換は、Pandasを使うと一発。
- mojimojiのインストールはpipコマンド、pip mojimojiで行う。
- インストールできないときは『Windows 10 SDK』をインストールする必要がある。