python-3.x - 在 Pandas 数据框中过滤多个列以获取相同的字符串
问题描述
我正在寻找一种简单有效的方法来过滤具有相同字符串 ( 'Normal'
) 的 pandas 数据框中的多个列。这些列具有特定的后缀(_out)
,可以使用regex
like过滤
df_out.filter(regex='_out')
目前我正在使用单个过滤器,例如
Filter_1 = df_out[‘column1_out’].isin([‘Normal])
进而df_out[Filter_1]
但是拥有超过30 of these columns
,我觉得必须有一种精益的方式来完成这项工作。
解决方案
您可以使用df_out.columns.str.contains('_out')
提取所有包含_out
.
mask = np.logical_and.reduce([df_out[col].isin(['Normal']) for col in df_out.columns[df_out.columns.str.contains('_out')]])
df_out[mask]
或者
mask = np.logical_and.reduce([df_out[col].isin(['Normal']) for col in df_out.filter(regex='_out').columns])
df_out[mask]
推荐阅读
- jenkins - Jenkinsfile 中奇怪的变量作用域行为
- python - Pytrends:请求失败:Google 返回了带有代码 429 的响应
- python-2.7 - 带有 TkAgg 后端的 matplotlib 在 Mac High Sierra 上不起作用
- firebase - Firebase Auth 使用或覆盖已弃用的 API
- r - 使用并行功能时 R CRAN 检查失败
- php - 使用 PHP 从桌面打开 txt 文件
- c - INT_MIN and its positive equivalent is the same size
- mdx - 使用 MDX 忽略重复的天数
- php - 在sql中仅选择值大于0的金额
- javascript - 异步 REST API 服务器应用程序的实现