这是我的数据帧dim
var types count
0 var1 nominal 1
1 var2 ordinal 1
2 var3 quantitative 2
3 var4 quantitative 2我想要得到dim"var“,其中dim"types”== quantitative和dim"count“> 1。然后结果是一个列表var3,var4。当我尝试执行以下查询时:
print(dim["var"].where((dim["types"] =="quantitative") & (dim["count"] > 1)))我得到了以下结果:
0 NaN
1 NaN
2 NaN
3 NaN我不知道怎样才能得到想要的解决方案。
发布于 2020-06-07 16:13:10
使用带有掩码的DataFrame.loc:
L = dim.loc[(dim["types"] =="quantitative") & (dim["count"] > 1), "var"].tolist()
print (L)
['var3', 'var4']您的输出是正确的,因为将where condition is False值转换为缺少的值:
print ((dim["types"] =="quantitative") & (dim["count"] > 2))
0 False
1 False
2 False
3 False
dtype: bool
print(dim["var"].where((dim["types"] =="quantitative") & (dim["count"] > 2)))
0 NaN
1 NaN
2 NaN
3 NaN
Name: var, dtype: object因此,如果在条件输出中使用==是:
print ((dim["types"] =="quantitative") & (dim["count"] > 1))
0 False
1 False
2 True
3 True
dtype: bool
print(dim["var"].where((dim["types"] =="quantitative") & (dim["count"] > 1)))
0 NaN
1 NaN
2 var3
3 var4
Name: var, dtype: object 发布于 2020-06-07 16:14:53
将loc访问器与您的掩码一起使用。
>>> (dim["types"] == "quantitative") & (dim["count"] > 1)
0 False
1 False
2 True
3 True
dtype: bool如下所示:
>>> dim.loc[(dim["types"] == "quantitative") & (dim["count"] > 1), 'var']
2 var3
3 var4
Name: var, dtype: objecthttps://stackoverflow.com/questions/62242613
复制相似问题