根据 Pandas DataFrame 中的 IQR 分数过滤掉行
Filtering out rows based on an IQR score in Pandas DataFrame
df_boyd_out = df_boyd[~((df_boyd['MTTR'] < (Q1 - 1.5 * IQR)) | (df_boyd['MTTR'] > (Q3 + 1.5 * IQR))).any(axis=1)]
以上是我的代码,其中returns:ValueError: No axis named 1 for object type Series
我试过:
df_boyd_out = df_boyd[~((df_boyd.MTTR < (Q1 - 1.5 * IQR)) | (df_boyd.MTTR > (Q3 + 1.5 * IQR))).any(axis=1)]
您不需要 .any(axis=1)
,因为您的代码已经 returns 一个 Series
布尔值。
其他点,可以替换为:
~((df_boyd.MTTR < (Q1 - 1.5 * IQR)) | (df_boyd.MTTR > (Q3 + 1.5 * IQR)))
作者:
df_boyd.MTTR.between(Q1 - 1.5 * IQR, Q3 + 1.5 * IQR)
这可能更具可读性。
df_boyd_out = df_boyd[~((df_boyd['MTTR'] < (Q1 - 1.5 * IQR)) | (df_boyd['MTTR'] > (Q3 + 1.5 * IQR))).any(axis=1)]
以上是我的代码,其中returns:ValueError: No axis named 1 for object type Series
我试过:
df_boyd_out = df_boyd[~((df_boyd.MTTR < (Q1 - 1.5 * IQR)) | (df_boyd.MTTR > (Q3 + 1.5 * IQR))).any(axis=1)]
您不需要 .any(axis=1)
,因为您的代码已经 returns 一个 Series
布尔值。
其他点,可以替换为:
~((df_boyd.MTTR < (Q1 - 1.5 * IQR)) | (df_boyd.MTTR > (Q3 + 1.5 * IQR)))
作者:
df_boyd.MTTR.between(Q1 - 1.5 * IQR, Q3 + 1.5 * IQR)
这可能更具可读性。