我在使用熊猫查询的布尔索引来查询具有双列索引的数据帧时遇到麻烦。
我有以下数据框:
df2 =
val1 val2
mean size mean size
col1
c 2.5 2 5 2
d 4.5 2 9 2
e 0.5 2 1 2
其中val1和val2是第一级列索引,mean和size是第二级索引。
然后我要使用如下语法选择第一列('val1','mean')> 3的行:
df2.query('(val1, mean) > 3')
我知道可以通过
完成df2[df2[('val1','mean')] > 3],
但是我想知道在查询中是否可行,因为语法更简洁。
答案 0 :(得分:0)
让我们尝试一下:
isin返回一个布尔级数,而〜取反布尔级数
df.apply(lambda x: x['column_name'] in x['column_name'], axis=1)
您可以输入“ 3”之类的条件,而不是“ in”
df.loc[~df['column_name'].isin(some_values)]
或
df['column_name'] >= 3
是的,有可能借助“查询”执行该操作
df.query('(a < b) & (b < c)')