我正在尝试使用pd.query基于多个列进行过滤,但是我的列标题中包含空格。有没有办法不删除空格来使用query()?我尝试单引号如下(记住真正的数据/查询比这复杂得多),但没有运气:
x1 = "ab"
x2 = ["ab", "ac"]
x3 = ["ab", "ad"]
df = pd.DataFrame({"t 1": ["a", "b", "ab"],
"t 2":["b", "x", "ac"],
"t 3":["a", "w", "ad"]})
df.query("'t 1' in @x \
& 't 2' in @x2 \
& 't 3' in @x3")
注意:我在pandas 0.23
编辑:
虽然我知道这可以使用更传统的df[df['t 1'].isin(x1) ...
语法来完成,但实际创建的查询是动态的,通常涉及10个左右的过滤条件,因此使用该方法并不理想。有没有办法使用查询?或另一种解决方案?