我有一个如下数据框,其中所有内容都格式化为字符串:
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
我正在尝试通过将一系列正则表达式样式的规则应用于属性和值列的方法来寻找一种过滤数据框的方法。
例如,一些示例规则可能如下:
另一个规则可能是更数学的东西,例如:
是否有一种方法可以完成这样的事情,而不必每次都针对我要应用的每个规则遍历所有行?
答案 0 :(得分:2)
您仍然必须应用每个规则(还有其他规则),但是让熊猫来处理行。另外,不要删除不喜欢的行,而要保留行。这是一个如何应用前两个规则的示例:
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
不是数字列。
答案 1 :(得分:0)
第一个:
def approx_multivariate_cdf(dist, bound, num_samples=int(100e3), seed=None):
s = dist.sample(num_samples, seed=seed)
in_box = tf.cast(tf.reduce_all(s <= bound, axis=-1), dist.dtype)
return tf.reduce_mean(in_box, axis=0)
和另一个:
df = df.drop(df[(df.property.startswith('propA')) & (df.value is not True)].index)