Search code examples
pythondataframegoogle-translate

Translate Dataframe Columns in Python using "google_trans_new" library


I want to translate the column "name" of my df, I have the following line

 data1['name']=data1['name'].apply(lambda x: translator.translate(x, dest='en').text)

But I get the error

AttributeError: 'NoneType' object has no attribute 'group'

Example of my df:

      number    name 
0       1      Αλέκος Καραβίτης
1       2      Νίκος Τζουγάνος
2       3      $IMEON
3       4      鄒森
4       5      黃國隆

Solution

  • Prerequisites to install “pip install google-trans-new“ (Please refer here for additional information):

    • Python should be >=3.6
    • requests : “pip install requests“
    • six : “pip install six“

    Then change the function from:

    data1['name']=data1['name'].apply(lambda x: translator.translate(x, dest='en').text)

    To:

    data1['name']=data1['name'].apply(lambda x: translator.translate(x,lang_tgt='en'))

    Because, “dest” keyword is not supported in the “google-trans-new” library. It’s supported only in the “googletrans” library. So, you should use “lang_tgt” instead of “dest” when using the “google-trans-new” library. Please refer here for additional information.

    Try below Script:

    # coding: utf-8
    import pandas as pd
    from google_trans_new import google_translator
    translator = google_translator()
    data1 = pd.DataFrame([
    [1, 'Αλέκος Καραβίτης'],
    [2, 'Νίκος Τζουγάνος'],
    [3, '$IMEON'],
    [4, '鄒森'],
    [5, '黃國隆'] ], columns=['number', 'name'])
    data1['name']=data1['name'].apply(lambda x: translator.translate(x,lang_tgt ='en')
    print(data1)