import pandas as pd#生成异常数据df=pd.DataFrame({'col1':[1,120,3,5,2,12,13], 'col2':[12,17,31,53,22,32,43]})print(df) col1 col20 1 121 120 172 3 313 5 534 2 225 12 326 13 43df_zscore=df.copy() #复制一个用来存储Z-score得分的数据框cols=df.columnsfor col in cols: df_col=df[col] z_score=(df_col - df_col.mean()) / df_col.std() #计算每列的Z-score得分 df_zscore[col] = z_score.abs() > 2.2 #判断Z-score得分是否大于2.2,如果是则为True,否则为False#打印,为True即异常值print(df_zscore) col1 col20 False False1 True False2 False False3 False False4 False False5 False False6 False False#获取无异常值的数据df_drop_outlier=df[df_zscore['col1']==False]#打印print(df_drop_outlier) col1 col20 1 122 3 313 5 534 2 225 12 326 13 43