Googletrans을 사용하여 DataFrame의 열 이름을 일본어에서 영어로 변환

소개



pandas에서 데이터 프레임을 다룰 때 열 이름이 일본어라면 뭔가 불편할 수 있습니다.
그러한 경우에, 일본어의 컬럼명을 수동으로 변환하면 번거롭기 때문에, googletrans를 사용하는 것으로 편하게 하려고 하는 혼담.

환경 및 버전


  • googletrans 4.0.0-rc.1
  • Google Colaboratory

  • Googletrans 정보



    Googletrans는 google 번역 API를 사용하는 파이썬 라이브러리입니다. Google colaboratory의 경우 다음 코드로 설치할 수 있습니다.
    !pip install googletrans==4.0.0-rc1
    

    ※ 1월 12일 현재 버전을 지정하지 않고 설치하면 googletrans 3.0.0이 설치됩니다. 이 버전에서는 잘 작동하지 않습니다.
    참고 : htps : // 이 m/_유슈/있어 ms/83c51에 29771530646659

    googletrans 사용법


    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)
    



    무사히 영어 컬럼이 될 수 있었습니다.

    좋은 웹페이지 즐겨찾기