我有一个包含各种体育比赛的数据框。列包括c_away
(远队代码),c_home
(主队),y
(年)和其他一些列。我正在尝试实施“过滤器”系统。例如,查找2018年TeamA在主场迎战TeamB的所有比赛。
我可以手动执行此操作,但是当我添加更多过滤器时,效果并不理想。
示例:
df[(df.c_home == t)|(df.c_away == t)] # any matches involving `t` team
df[(df.c_home == t)&(df.y == 2018)] # matches at home, in 2018
我的目标是添加到列表中
filters.append((df.c_home == t))
if year:
filters.append((df.y == year))
然后在末尾&
一起。
答案 0 :(得分:0)
不确定这是否是唯一的方法,但是df.query
似乎更有用,因为我可以连接字符串:
filters.append("col == 1")
filters.append("col2 > 3")
df.query(" and ".join(filters))