熊猫:检查json对象中是否存在dataframe列

时间:2018-11-09 19:47:12

标签: python pandas dataframe

我有一个名为“国家”的json对象,如下所示,其中包含所有国家/地区的ISO代码列表:

countries = [{"name":"Afghanistan","alpha-2":"AF","country-code":"004"},{"name":"Åland Islands","alpha-2":"AX","country-code":"248"},{"name":"Albania","alpha-2":"AL","country-code":"008"},{"name":"Algeria","alpha-2":"DZ","country-code":"012"}]

我有一个带有“国家/地区”列的熊猫数据框:

Country
--------
AU
AL
DZ

我如何检查json对象的“国家/地区”列中是否存在任何行,并在json对象的“ alpha-2”列中显示错误?

当我尝试下面的代码时,我没有得到任何错误,也没有输出任何内容。

if df['Country'].any() in [x['alpha-2'] for x in countries]:
    print "Country code exists"

2 个答案:

答案 0 :(得分:4)

你可以做

if set(x['alpha-2'] for x in countries).intersection(df.Country):
    print('Country code exists')

或者更贴近您的尝试(但具有完全不同的性能特征),

if df.Country.isin(x['alpha-2'] for x in countries).any():
    print('Country code exists')

答案 1 :(得分:3)

由于您已经有一个熊猫DataFrame,可以将JSON对象转换为DataFrame,使用pd.merge进行default: addon = base + base * 0.01; 联接,然后检查返回的DataFrame是否为空。

inner