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、state、District 和 Gender 应用不同的过滤器。
将根据开始和结束日期条件过滤掉日期。
默认情况下,如果选择了任何特定的“状态”,则会显示所有“状态”,然后状态过滤器将与日期过滤器结合使用。
默认情况下,如果选择了任何特定的“地区”,则会显示所有“地区”,然后地区过滤器将与上述过滤器结合使用。
默认情况下,如果选择了任何特定的“性别”,则会显示所有“性别”,那么“性别”过滤器将与上述过滤器相结合。
如何应用上述组合在 pandas 数据框中的过滤器(一步组合查询并同时工作)?我目前使用 if-else 子句。任何人都可以建议我更好的方法吗?
解决方案
如果要根据列值选择 DataFrame 中的某些行,可以制作布尔掩码。例如:
mask = (df.A == 1) & (df.B > 3)
df[mask]
这只会选择 DataFrame 中 A == 1 且 B > 3 的行。
推荐阅读
- javascript - 动态初始化到 npm 包中的变量
- html - 上传文件的 Mime 类型不正确
- mongodb - 为收集的过期数据设置 TTL
- go - Accept a character from console and display its next character
- ios - is it possible to "Pause" and "Resume" AVAssetDownloadTask?
- javascript - 如何单击从同一 javascript 添加到 html 的元素?
- r - R- Include starting point in cumsum function
- java - 从签名的 jar 中提取证书
- arrays - Laravel: How to get JSON objects with names separeted by "-"?
- python - Plotly / Dash: Multiple filters