怎么在熊猫中使用box_plot去除异常值

  介绍

这期内容当中小编将会给大家带来有关怎么在熊猫中使用box_plot去除异常值,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

# - *安康;编码:utf-8  _ *安康;   import  pandas  as  pd   import  numpy  as  np   import  matplotlib.pyplot  as  plt   import 系统   import 操作系统   import  seaborn  as  sns   得到sklearn.preprocessing  import  StandardScaler   & # 39;& # 39;& # 39;   通过box_plot(盒图来确认)异常值   & # 39;& # 39;& # 39;      #,获取项目根目录   时间=input_data_path  os.path.dirname (os.path.dirname (os.getcwd())), +, & # 39;/输入/& # 39;   打印(input_data_path)      #,获取数据得位置   时间=month_6_train_path  input_data_path  + & # 39; month_6_1.csv& # 39;   +=month_6_test_path  input_data_path  & # 39; test_data_6_1.csv& # 39;      #,读取数据   时间=data_train  pd.read_csv (month_6_train_path)   时间=data_test  pd.read_csv (month_6_test_path)      #,print (data_train.head ())   #,print (data_test.head ())      #,暂时不考虑省份城市地址   #,月份只有一个月,暂时不考虑   #,bedrooms 需要看成分类型得数据   #,只取出经度,纬度,价格,buildingTypeId,卧室,daysOnMarket         #,取出这些数据;=#,train  data_train[[& # 39;经度# 39;,,& # 39;纬度# 39;,,& # 39;价格# 39;,,& # 39;buildingTypeId& # 39;,, & # 39;卧室# 39;,,& # 39;daysOnMarket& # 39;]]=#,火车,train.dropna ()   train =, data_test[[& # 39;经度# 39;,,& # 39;纬度# 39;,,& # 39;价格# 39;,,& # 39;buildingTypeId& # 39;,, & # 39;卧室# 39;,,& # 39;daysOnMarket& # 39;]]   print (train.head ())   #,print (test.head ())   #,打印(train.isna () .sum ())   #,sns.pairplot(火车)   #,#,sns.pairplot(测试)   #,plt.show ()         #,特征清洗:异常值清理用用箱图;   #,分为两步走,一步是单列异常值处理,   #,第二步是多列分组异常值处理   def  remove_filers_with_boxplot(数据):=,,p  data.boxplot (return_type=& # 39; dict # 39;)   ,for 指数,value 拷贝;列举(data.columns):   #,才能获取异常值   时间=fliers_value_list 才能;p[& # 39;传单# 39;](指数).get_ydata ()   #,才能删除异常值   for 才能;flier  fliers_value_list:拷贝   ,,data =,数据(data.loc(:,价值),!=,传单)   return 数据      打印(train.shape)   时间=train  remove_filers_with_boxplot(火车)   打印(train.shape)      & # 39;& # 39;& # 39;   以上得异常值处理还不够完善,   完善的异常值处理是分组判断异常值,   也就是他在单独这一列种,还有一种情况是多余不同的分类,他是不是存在异常   所以就需要用到分组获取数据再箱图处理掉异常数据;   & # 39;& # 39;& # 39;   train =,火车[pd.isna (train.buildingTypeId), !=,真的)   打印(train.shape)      打印(火车[& # 39;卧室# 39;].value_counts ())   & # 39;& # 39;& # 39;   3.0,8760   2.0,5791   4.0,5442   1.0,2056   5.0,1828   6.0,429   0.0,159   7.0,82   由于样本存在不均衡得问题:所以只采用12345数据:也就是说去掉0,7日,6日到时候测试数据也要做相同得操作;   还有一种是通过下采样或者是上采样的方式进行,这里暂时不考虑;   & # 39;& # 39;& # 39;   #,只取bedrooms 为1,2,3,4,5,得数据   train =,火车[火车[& # 39;卧室# 39;].isin ([1、2、3、4、5)))   打印(train.shape)         #,利用主分组后去掉异常点   def  use_pivot_box_to_remove_fliers(数据、pivot_columns_list pivot_value_list):   ,for  column  pivot_columns_list拷贝:   for 才能;value  pivot_value_list:拷贝   ,,#,获取分组的dataframe   ,,new_data =, data.pivot(列=列值=价值)   ,,p =, new_data.boxplot (return_type=& # 39; dict # 39;)   ,,for 指数,value_new 拷贝列举(new_data.columns):   ,,,#,获取异常值   ,,,fliers_value_list  p=,(& # 39;传单# 39;](指数).get_ydata ()   ,,,#,删除异常值   ,,,for  flier 拷贝fliers_value_list:   ,,,,data =,数据(data.loc(:,,值),!=,传单)   return 数据=#,train  use_pivot_box_to_remove_fliers(火车,[& # 39;buildingTypeId& # 39; & # 39;卧室# 39;],[& # 39;价格# 39;& # 39;daysOnMarket& # 39;, & # 39;经度# 39;,& # 39;纬度# 39;])   打印(train.shape)   #,打印(train.isna () .sum ())      #,以上就不考虑经度和纬度的问题了;应为房屋的类型以及房间个数和经纬度关系不大,但是也不一定,   #,实践了一下加上经度和纬度之后样本数据并没有减少;      #,sns.pairplot(火车)   #,plt.show ()      #,先进一步做处理将纬度小于40的去掉   train =,火车(train.latitude> 40)      #,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -》》》   #,对于数值类型得用均值填充,但是在填充之前注意一些原本就是分类型数据得列   #,def  fill_na(数据):   #,,for  column  data.columns:拷贝   #,,,if  column.dtype  !=, str:   #,,,,(列).fillna数据(数据(列).mean ())   #,return 数据      #,以上是异常值,或者是离群点的处理,以及均值填充数据   #,下面将根据猫图或者是嘘图来处理数据         #,#,标准化数据=#,train  StandardScaler () .fit_transform(火车)   #,#,标准化之后画图发现数据分布并没有变   #   #,sns.pairplot (pd.DataFrame(火车)   #,plt.show ()      & # 39;& # 39;& # 39;   1:循环遍历整个散点图用刚才写好的算法去除点;   & # 39;& # 39;& # 39;      #,获取   #,def  get_outlier (x, y, init_point_count ,距离,least_point_count):=#,,x_outliers_list  []=#,,y_outliers_list  []   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在熊猫中使用box_plot去除异常值