python数据分析之数据清洗(以摩托车的销售情况数据为例)

文章目录

一、获取数据集并寻找存在的问题

1、阅读数据集描述

python数据分析之数据清洗(以摩托车的销售情况数据为例)

; 2、查看数据并发现问题

缺失值比较多
价格,里程不为实数
数据存在重复
部分数据没有离散化
存在异常值
其他问题

二、清洗步骤

1、数据格式转换

价格$1,000 -> 1000(整数),其他数据去掉逗号


def f_1(s):
    if '$' in str(s):
        s = str(s).strip('$')
    s = str(s).replace(',','')
    return float(s)

df['Price'] = df['Price'].apply(f_1)
df['Mileage'] = df['Mileage'].apply(f_1)

2、去重复

print ('数据集是否存在重复观测: \n', any(df.duplicated()))

检查数据集是否有重复

python数据分析之数据清洗(以摩托车的销售情况数据为例)
在这个数据集中’Condition’,’Condition_Desc’,’Price’,’Location’是比较重要的几个属性,可以把这几个字段重复的删除

print(df[df.duplicated()])

print(np.sum(df.duplicated()))

df.drop_duplicates(subset= ['Condition','Condition_Desc','Price','Location'],keep='first',inplace=True)

3、缺失值处理

(1)删除法


df.dropna(subset=['Condition','Price','Mileage'],inplace=True)

(2)填补法(种类繁多,见下图)

python数据分析之数据清洗(以摩托车的销售情况数据为例)

4、异常值处理

画出箱线图

plt.subplot(131)
df.Price.plot(kind = 'box')
plt.subplot(132)
df.Mileage.plot(kind='box')
plt.subplot(133)
df.Bid_Count.plot(kind='box')
plt.tight_layout()
plt.show()

python数据分析之数据清洗(以摩托车的销售情况数据为例)
删除或者替换异常值(极大/极小)

def substitute(attr,df):

    attr = str(attr)
    P1 = df[attr].quantile(0.01);
    P99 = df[attr].quantile(0.99)
    df.loc[df[attr] > P99, attr] = P99
    df.loc[df[attr] < P1, attr] = P1
for a in {'Price','Mileage','Bid_Count'}:
    substitute(a,df)

这样数据就看起来好多了

python数据分析之数据清洗(以摩托车的销售情况数据为例)

5、数据离散化

数据离散化实际就是”分箱”——就是把数据分成不同的几类,便于分析
常用函数pandas.cut:

python数据分析之数据清洗(以摩托车的销售情况数据为例)

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
df = pd.read_csv('MotorData.csv',encoding = 'gbk',na_values='Na')
w = [100,1000,5000,10000,20000,30000]
df['Price'] = pd.cut(df['Price'],bins=w,labels=['低','便宜','划算','中等','高'],ordered=True)
df['Price'].hist()
plt.show()

python数据分析之数据清洗(以摩托车的销售情况数据为例)

参考

去重复
https://blog.csdn.net/dzysunshine/article/details/100022994
箱线图
https://blog.csdn.net/sscc_learning/article/details/78771324

Original: https://blog.csdn.net/qq_51539256/article/details/122740971
Author: 英雄各有见
Title: python数据分析之数据清洗(以摩托车的销售情况数据为例)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/600714/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球