LoginSignup
1
1

【Python】数字の半角全角置換にはtranslate

Last updated at Posted at 2023-09-12

はじめに

文字を扱っていると数字を全角や半角にしたいときがよくあります。
全角や半角に変換するライブラリーがありますが、インストールして使用するまでのことでも無いと毎回思っていました。
なので、translateでの変換方法をこの記事に簡単に書いておきます。

コード全体

import pandas as pd

hankaku_table = str.maketrans({
    '1': '',
    '2': '',
    '3': '',
    '4': '',
    '5': '',
    '6': '',
    '7': '',
    '8': '',
    '9': '',
    '0': '',
})
zenkaku_table = str.maketrans({
    '': '1',
    '': '2',
    '': '3',
    '': '4',
    '': '5',
    '': '6',
    '': '7',
    '': '8',
    '': '9',
    '': '0',
})


# テスト用文章
word = "1122"

# テストの実行
hankaku_result = word.translate(zenkaku_table)
zenkaku_result = word.translate(hankaku_table)

簡単な説明

変換テーブル作成

変換用のテーブルを作成します。
左の文字から右の文字に変換されます。

hankaku_table = str.maketrans({
    '1': '',
    '2': '',
    '3': '',
    '4': '',
    '5': '',
    '6': '',
    '7': '',
    '8': '',
    '9': '',
    '0': '',
})
zenkaku_table = str.maketrans({
    '': '1',
    '': '2',
    '': '3',
    '': '4',
    '': '5',
    '': '6',
    '': '7',
    '': '8',
    '': '9',
    '': '0',
})

変換

この行で変換を行っています。

hankaku_result = word.translate(zenkaku_table)
zenkaku_result = word.translate(hankaku_table)

おまけ

句読点の変換とデータフレームでの使用法を載せておきます。

句読点の変換

数字を句読点に変更することで対応させています。

hankaku_mark_table = str.maketrans({
    '': '.',
    '': ',',
})

zenkaku_mark_table = str.maketrans({
    '.': '',
    ',': '',
})

hankaku_mark_result = word.translate(hankaku_mark_table)
zenkaku_mark_result = word.translate(zenkaku_mark_table)

データフレームの変換

データフレームにはlambdaを使用して変換させています。

df = pd.DataFrame({'A': ['11', '21', '31', '11', '11'], 
                   'B': ['12', '22', '32', '45', '85']})

df["C"] = df["A"].apply(lambda x: x.translate(zenkaku_table))
df["D"] = df["A"].apply(lambda x: x.translate(hankaku_table))
1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1