python - 按正则表达式和标签组合的 Pandas 过滤器
问题描述
我有一些大的csv。它们可以轻松拥有超过 30 万行和 500 列。所以很明显,我喜欢在结果数据框中删除一些不需要的数据以保护资源。有一些固定标记的列,还有一些可变数量的列具有相似的标签但被编号。
example=pd.DataFrame(columns=["fix","variable 1","variable 2","waste 1","waste 2"])
我想得到所有这些变量列,我可以通过
example.filter(regex="var")
但我也想包括“修复”。由于 df.loc 不允许 regex' 并且 df.filter 只支持单个参数,有没有一种平滑的方法来做到这一点?还是我必须创建一个相当复杂的可调用对象?
提前致谢
解决方案
只需修改您的正则表达式以完全匹配“修复”:
df.filter(regex=r"var|(^fix$)")
Empty DataFrame
Columns: [fix, variable 1, variable 2]
Index: []
另一种选择是以Index.str.contains
相同的方式使用:
df.loc[:,df.columns.str.contains(r'var|(?:^fix$)') ]
Empty DataFrame
Columns: [fix, variable 1, variable 2]
Index: []
我让该组不被捕获,否则熊猫会抱怨。
推荐阅读
- sql - sql在相关组上生成组
- java - Apache Http 客户端 - 停止从 URL 中删除双斜杠
- java - 使用POI用java替换word模板文档中的内容
- java - System.GetProperties 不返回 Mac OS 中的实际值
- java - 每次在 Firebase 中创建新用户时,是否可以创建一个新的 Firestore 数据库?
- html - 编码的 html 是否与 155 个字符的元描述大小限制有关?
- agda - Agda:在类型定义中重写而不是显式强制?
- c# - 为什么使用带有接口参数的构造函数而不是具有最多派生参数类型的构造函数?
- c++ - 将矢量从相对坐标系转换为绝对坐标系
- excel - VBA 在过滤后的数据上创建图表