熊猫通过正则表达式和标签合并过滤

时间:2019-03-07 20:52:41

标签: python pandas

我有一些大型的csv。他们可以轻松地拥有超过30万行和500列。因此,显然,我希望摆脱结果数据框中一些不需要的数据,以获取安全的资源。 有一些带有固定标记的列,也有一些可变的列,它们具有相似的标签,但是编号。

example=pd.DataFrame(columns=["fix","variable 1","variable 2","waste 1","waste 2"])

我想获取所有这些变量列,可以通过

获得
example.filter(regex="var")

但是我也想包括“修复”。由于df.loc不允许使用正则表达式,并且df.filter仅支持单个参数,因此有没有一种简便的方法?还是我必须创建一个非常复杂的可调用对象?

预先感谢

1 个答案:

答案 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: []

我让这群人不去捕捉,否则大熊猫会抱怨。