我有一些大的 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 只支持一个参数,有没有一种平滑的方法来做到这一点?还是我必须创建一个非常复杂的可调用对象?
提前致谢
请您参考如下方法:
只需修改您的正则表达式即可完全匹配“fix”:
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: []
我让组不捕获,否则 pandas 会提示。
