我有一些大型的csv。他们可以轻松地拥有超过30万行和500列。因此,显然,我希望摆脱结果数据框中一些不需要的数据,以获取安全的资源。 有一些带有固定标记的列,也有一些可变的列,它们具有相似的标签,但是编号。
example=pd.DataFrame(columns=["fix","variable 1","variable 2","waste 1","waste 2"])
我想获取所有这些变量列,可以通过
获得example.filter(regex="var")
但是我也想包括“修复”。由于df.loc不允许使用正则表达式,并且df.filter仅支持单个参数,因此有没有一种简便的方法?还是我必须创建一个非常复杂的可调用对象?
预先感谢
答案 0 :(得分:1)
只需修改您的正则表达式即可完全匹配“修复”:
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: []
我让这群人不去捕捉,否则大熊猫会抱怨。