熊猫数据框过滤器未命中结果

时间:2019-08-22 18:49:37

标签: python pandas dataframe

鉴于contractsint64的数组,谁能告诉我为什么这样做:

for c in contracts:
    geoEstab = df.loc[df['id']==c] #geoEstab has results

但这会返回一个空集:

relevantEstabs = df.loc[df['id'].isin(contracts)] #relevantEstabs is empty

1 个答案:

答案 0 :(得分:0)

由于使用==条件时,您要匹配给定数组的条件,而使用isin()函数时,如果所有标签都匹配,则结果仅在某个位置为true。如果值是系列,那就是索引。如果values是一个dict,则键必须是必须匹配的列名。如果值是DataFrame,则索引标签和列标签都必须匹配。