带有双索引的熊猫查询

时间:2019-06-04 12:05:19

标签: python pandas dataframe

我在使用熊猫查询的布尔索引来查询具有双列索引的数据帧时遇到麻烦。

我有以下数据框:

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], 

但是我想知道在查询中是否可行,因为语法更简洁。

1 个答案:

答案 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)')

pydata: indexing-query

pandas.dataframe