【发布时间】:2021-03-10 10:50:39
【问题描述】:
在对数据帧的两列进行散点图后,数据帧的最后一行显然存在异常值,我尝试打印它,但此代码始终打印“无异常值”。 看起来很简单,但不知何故我不明白为什么这段代码 没有检测到这个异常值。
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
data=[[ 10,10],
[ 15,15],
[ 14,14]
,[16,16],
[19,19],
[17,17]
,[6,6],
[5,5],
[20,20]
,[22,22],
[21,21],
[18,45 ]]
df = pd.DataFrame(data, columns=['x','y'])
plt.scatter(df['x'],df['y'])
plt.show()
if 17<df['x'].any()<19 and 42<df['y'].any()<48:
print(df['x'], df['y'])
else:
print('no outliers')
【问题讨论】:
-
问题是
df['x'].any()返回True。如果您要求17<df['x'].any()或17<True,您会得到False。因此,您永远不会输入 if 子句。
标签: python pandas scatter-plot outliers