[英]Pandas - how to filter dataframe by regex comparisons on mutliple column values
我有一个如下数据框,其中所有内容都格式化为字符串:
df
property value count
0 propAb True 10
1 propAA False 10
2 propAB blah 10
3 propBb 3 8
4 propBA 4 7
5 propCa 100 4
我试图找到一种方法,通过将一系列正则表达式样式的规则应用于属性和值列,来筛选数据框。
例如,一些示例规则可能如下所示:
另一个规则可能是更数学的东西,例如:
有没有一种方法可以完成这样的事情而不必每次都对我要应用的每个规则都遍历所有行?
您仍然必须应用每个规则(还有其他规则),但是让熊猫来处理行。 另外,不要删除不喜欢的行,而要保留行。 这是如何应用前两个规则的示例:
rule1 = df.property.str.startswith('propA') & (df.value != 'True')
df = df[~rule1] # Keep everything that does NOT match
rule2 = df.property.str.startswith('propB') & (df.value < 4)
df = df[~rule2] # Keep everything that does NOT match
顺便说一句,第二个规则将不起作用,因为value
不是数字列。
对于第一个:
df = df.drop(df[(df.property.startswith('propA')) & (df.value is not True)].index)
另一个:
df = df.drop(df[(df.property.startswith('propB')) & (df.value < 4)].index)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.