有没有一种(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)这既不简单也不容易理解。
熊猫中是否有一种方法可以对“ |”进行某种序列化或“&”运算符?
答案 0 :(得分:1)
让我们尝试
out = df[np.any([df[k].isin(v) for k,v in my_filter.items()], axis=0)]