Googletransを使ってDataFrameのカラム名を日本語から英語に変換する
はじめに
pandasでデータフレームを扱う際に、カラム名が日本語だと何かと不便なことがあります。
そのような場合に、日本語のカラム名を手動で変換すると手間なので、googletransを用いることで楽をしようという魂胆。
環境とバージョン
- googletrans 4.0.0-rc.1
- Google Colaboratory
Googletransについて
Googletransは、google翻訳のAPIを使うためのpythonライブラリです。Google colaboratoryの場合、以下のコードでインストールできます。
!pip install googletrans==4.0.0-rc1
※1月12日現在、バージョンを指定せずインストールすると、googletrans 3.0.0 がインストールされます。このバージョンではうまく動作しません。
参考:https://qiita.com/_yushuu/items/83c51e29771530646659
googletransの使い方
from googletrans import Translator
columns = df.columns
translator = Translator()
str = 'こんにちは'
print(translator.translate(str, dest='en').text)
from googletrans import Translator
columns = df.columns
translator = Translator()
str = 'こんにちは'
print(translator.translate(str, dest='en').text)
出力結果
Hello
destのデフォルトは英語なので dest='en' は略しても問題ないです。目的から逸れますが、destを変更することで、他の言語への翻訳が可能です。
print(translator.translate(str, dest='fr').text)
出力結果
Bonjour
日本語カラムから英語カラムへ変換
いよいよ本題です。日本語から英語カラムに変換していきます。まずはデータフレームの準備です。
データフレームの準備
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(25).reshape(5, 5),
columns=['顧客ID', '店舗ID', '個数', '価格', '店舗面積'])
df.head()
データフレームの準備ができました。日本語カラムだと、lightGBMで訓練する際にエラーが出るなど厄介です。英語に変換していきましょう。
Googletransを用いた英語変換
eng_columns = {}
columns = df.columns
translator = Translator()
for column in columns:
eng_columns[column] = translator.translate(column).text
print(eng_columns)
出力結果
{'顧客ID': 'Customer ID', '店舗ID': 'Store ID', '個数': 'Quantity', '価格': 'price', '店舗面積': 'Store area'}
無事に英語に変換できました。しかしこのままだと、空白が入っており煩わしいです。
空白をアンダーバーに変換するコードを実装します。
eng_columns = {}
columns = df.columns
translator = Translator()
for column in columns:
eng_column = translator.translate(column).text
eng_column = eng_column.replace(' ', '_')
eng_columns[column] = eng_column
df.rename(columns=eng_columns, inplace=True)
無事に英語のカラムにすることができました。
Author And Source
この問題について(Googletransを使ってDataFrameのカラム名を日本語から英語に変換する), 我々は、より多くの情報をここで見つけました https://qiita.com/virusyun/items/fb06bd8cbbab0862a1ce著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .