如何基于Pandas Dataframe中的多个条件进行过滤

时间:2020-05-07 09:35:11

标签: python pandas dataframe

我有一个数据框:

    count       DATE           state    District     Gender     
0   1604.0      2020-03-11      AN      Nicobar      None   
1   13.0        2020-03-11      UP      Noida        Male   
2   4.0         2020-03-11      KA      Banglore     Female 
3   6.0         2020-03-11      PB      Chandigarh   None   
4   20.0        2020-03-11      MP      Indore       Female 

我必须同时基于DATE,州,地区和性别应用不同的过滤器。

  1. 日期将根据开始和结束日期条件过滤掉。

  2. 默认情况下,如果选择了任何特定的“状态”,则将显示所有“状态”,然后状态过滤器将与日期过滤器组合。

  3. 默认情况下,如果选择了任何特定的“ District”,则将显示所有“ District”,然后“区域”过滤器将与上述过滤器组合。

  4. 默认情况下,如果选择了任何特定的“性别”,则会显示所有“性别”,然后性别过滤器将与上述过滤器组合。

如何将上述过滤器组合到pandas数据框中(一步查询并同时工作)?我目前使用if-else子句。有人可以建议我采取更好的方法吗?

1 个答案:

答案 0 :(得分:0)

如果要基于数据列的某些列值选择它们,则可以创建布尔掩码。例如:

mask = (df.A == 1) & (df.B > 3)
df[mask]

这只会选择DataFrame中A == 1且B> 3的行。