我正在尝试将pandas df中的三位数国家代码列规范化。我发现了一个很好的函数country_converter
,目前我正在一个非常大的数据帧中的country列上运行这个函数。因为列中存在NaN
值,所以它返回这些警告的数千。在
WARNING:root:nan not found in ISO3
我在找两样东西:
我试过这个名字的所有变体,但似乎都不管用,所以我想我遗漏了一些东西。。。在
import country_converter as coco
import pandas as pd
import numpy as np
import warnings
warnings.filterwarnings("ignore", message= "nan not found in ISO3")
warnings.filterwarnings("ignore", message= "root:nan not found in ISO3")
warnings.filterwarnings("ignore", message= "WARNING:root:nan not found in ISO3")
test = pd.DataFrame({"code":[np.nan, 'XXX', 'USA', 'GBR', "GBR",'SWE/n', "123", "abs", "ABCC", "ABC", np.nan, np.nan]})
test['code_convert']= test["code"].apply(lambda x: coco.convert(names= x, to='ISO3', not_found= np.NaN))
预期不会再看到带有nan
值的警告。在
我已经调整了数据帧中的数据,使np.nan公司适当的np.nan公司而不是字符串。在
然后你要做的就是过滤掉np.nan公司当你计算的时候。在
^{pr2}$我没有安装国家/地区转换器,但如果我简化了“应用于测试”:
相关问题 更多 >
编程相关推荐