Search code examples
pythonpython-3.xpandasdataframecountry-codes

How to convert country code to name with country_converter, in pandas


df
         Date        Value CODE
0      2020-03-12      7  AFG
1      2020-03-11      7  AFG
...

How could I generate the country from the code? I tried which just generated the code from the CODE variable

import country_converter as coco
df['country'] = df['CODE'].apply(coco.convert)
Actual Output:
         Date        Value CODE  country
0      2020-03-12      7  AFG     AFG  
1      2020-03-11      7  AFG     AFG 
Expected Output:
         Date        Value CODE  country
0      2020-03-12      7  AFG     Afghanistan  
1      2020-03-11      7  AFG     Afghanistan  

Solution

    • As per the country_converter documentation.
    • Valid values for the to and src parameters can be found with coco.CountryConverter().valid_class.
    import country_converter as coco
    import pandas as pd
    
    # setupt test dataframe
    df = pd.DataFrame({'code': ['AFG', 'USA', 'RU']})
    
    # add country name by applying the convert method
    df['short name'] = df.code.apply(lambda x: coco.convert(names=x, to='name_short', not_found=None))
    
    # display(df)
      code     short name
    0  AFG    Afghanistan
    1  USA  United States
    2   RU         Russia
    
    # converting the column to a list and passing it to the method also works to add the short name
    df['short name'] = coco.convert(names=df.code.tolist(), to='name_short', not_found=None)