我有一个数据框:
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也可以完成此操作,但是该怎么做?
答案 0 :(得分:4)
通过DataFrame.gt
与DataFrame.any
进行比较,以检查每行至少一个True:
df["has_outliers"] = df.gt(500).any(axis=1)
或计数True
并转换为整数:
df["has_outliers"] = df.gt(500).sum(axis=1).astype(bool)