熊猫中的布尔索引结合了可变数量的列

时间:2020-09-11 13:55:01

标签: python pandas

有没有一种(pythonic)方法可以遍历数据框中的列以在熊猫中进行布尔索引?

我不确定您是否可以使用列表理解功能...

我发现的唯一方法是:

df = pd.DataFrame(
    [
    ["a", "b", "c"],
    ["d", "e", "f"],
    ["g", "h", "i"],
    ], 
    columns=["A", "B", "C"],
    )

my_filter = {
    "A":{"a", "g"},
    "B":{"e"},
    }
    
series = [
        df[f].isin(v)==True for k,v in my_filter.items()
        ]
s = pd.DataFrame(series, columns=series[0].index).T.any(axis=1)
ix = s[s==True].index
df.loc[ix]

这似乎可以完成工作... 但是我不确定这是否可以提高内存效率,并且(IMHO)这既不简单也不容易理解。

熊猫中是否有一种方法可以对“ |”进行某种序列化或“&”运算符?

1 个答案:

答案 0 :(得分:1)

让我们尝试

out = df[np.any([df[k].isin(v) for k,v in my_filter.items()], axis=0)]