特殊过滤器熊猫数据框

时间:2019-03-19 09:52:52

标签: python pandas numpy dataframe series

我有一个数据框:

   BPR_free_speed  BPR_speed  Volume  time_normalised  free_capacity  
0           17.88  15.913662     580         1.593750          475.0  
1           17.88  15.865198     588         2.041667          475.0  
2           17.88  16.511613     475         0.666667          475.0  
3           17.88  16.882837     401         1.091458          467.0  
4           99999  16.703004     438         1.479167          467.0  
5           17.88  16.553928     467         0.960417          467.0  

如何在特殊条件下获得系列赛? 我想查找离群值并将其放入系列df["has_outliers"]中,例如如果某行的任何列中的值均大于550,则为True,否则为False。

此数据帧的输出应为

     has_outliers
0           True
1           True
2           False 
3           False 
4           True 
5           False 

我认为即使使用numpy也可以完成此操作,但是该怎么做?

1 个答案:

答案 0 :(得分:4)

通过DataFrame.gtDataFrame.any进行比较,以检查每行至少一个True:

df["has_outliers"] = df.gt(500).any(axis=1)

或计数True并转换为整数:

df["has_outliers"] = df.gt(500).sum(axis=1).astype(bool)