1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 数据挖掘之数据清洗(缺失值 异常值)

数据挖掘之数据清洗(缺失值 异常值)

时间:2022-08-30 20:14:56

相关推荐

数据挖掘之数据清洗(缺失值 异常值)

下载数据网站:

/c/airbnb-recruiting-new-user-bookings/data

下载最下面的文件

清洗工具,pandas

清洗内容:日期转换,缺失值处理,异常值处理

数据可视化:seaborn

用pandas

总结:

这是在python中的全部程序

import pandas as pd #载入pandasimport seaborn#载入可视化工具import matplotlib.pyplot as plt #载入可视化工具path='F:\kaggle\\train_users_2\\train_users_2.csv' #打开文件夹data=pd.read_csv(path) #用pd.read_csv()读取文件print(data.head()) #打印data前五行数据print(data.tail()) #打印data后五行数据print(data.describe()) #对data特征里面的数据进行一个操作print(data.sample(20))#初步查看数据长什么样子print(data.shape) #打印data的类型print(data.loc[1:5,['age','gender']]) #打印data中1到5行['age','gender']中的数据print(data['date_account_created']) #打印某一特征data['date_account_created']=pd.to_datetime(data['date_account_created']) #讲object装换为datetime,可实现两日期相减print(data.loc[0,'date_account_created']-data.loc[1,'date_account_created']) #两个日期相减data['timestamp_first_active']=pd.to_datetime(data['timestamp_first_active'],format='%Y%m%d%H%M%S') #时间对应转换print(data['timestamp_first_active'])plt.show(seaborn.distplot(data['age'].dropna()))#去除空缺的数据并打印plt.show(seaborn.boxplot(data['age'].dropna())) #去除空缺的数据并打印data_with_true_age = data[data["age"]<90] #去除年龄大于90的异常值data_with_true_age = data_with_true_age[data_with_true_age["age"]>10] #去除年龄小于10的异常值plt.show(seaborn.distplot(data_with_true_age["age"]))plt.show(seaborn.boxplot(data_with_true_age["age"]))

这是在jupyter notebook中的程序

import pandas as pdpath='F:\kaggle\\train_users_2\\train_users_2.csv'data=pd.read_csv(path)

显示前面五行的数据

data.head()

显示后面五行的数据

data.tail()

data.describe()对文件里面是数据的特征进行处理,比如均值,标准差

data.describe()

#查看’date_account_created’那一维度的信息,需要将object类型转换为时间类型,方便进行时间的相减

data['date_account_created']

利用pd.to_datetime()实现

pd.to_datetime(data['date_account_created'])

#实现两个日期的相减,发现相差了331天

data['date_account_created']=pd.to_datetime(data['date_account_created'])data.loc[0,'date_account_created']-data.loc[1,'date_account_created'] #两个日期相减

将‘date_first_booking’一栏的时间也转换为标准的时间类型

data['timestamp_first_active']=pd.to_datetime(data['timestamp_first_active'],format='%Y%m%d%H%M%S') #时间对应转换

转换之后的结果

空值处理,关于年龄这一行,我们发现有异常值,有空值,我们先把空值去掉,data[‘age’].dropna() 是空值去掉

用seaborn可视化,画出去掉空值的结果

import seaborn%matplotlib inlineseaborn.distplot(data['age'].dropna())

用boxplot可发现有异常点,不可能有年龄超过2000岁

seaborn.boxplot(data['age'].dropna())

去掉年龄大于90岁和小于10岁的样本

data_with_true_age = data[data["age"]<90]data_with_true_age = data_with_true_age[data_with_true_age["age"]>10]seaborn.distplot(data_with_true_age["age"])

seaborn.boxplot(data_with_true_age["age"])

可以看出大多数年龄都在25~45之间

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。