继瓜子二手车数据爬去之后,在此进行处理分析

Pycharm代码

# coding:utf8
# author:Jery
# datetime:2019/5/3 17:35
# software:PyCharm
# function:对爬取的瓜子二手车信息进行分析 import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns """ 原始数据 """
data = pd.read_csv(r'C:\Users\Jery\Desktop\guazi1.csv')
# print(data.head(3)) def init():
"""准备""" # 解决中文问题
plt.rcParams['font.sans-serif'] = ['SimHei']
# 解决负号显示
plt.rcParams['axes.unicode_minus'] = False def data_handle():
"""数据清洗""" # 删除奇数行,不包括表头
global data
nums = [i for i in range(4659) if i%2 != 0]
data.drop(nums,inplace=True)
# data.dropna(subset=['城市','车型','上牌时间','上牌地','表显里程','排量','变速箱','价格'],inplace=True)
# 去表显里程单位——万公里
data['表显里程']=data.表显里程.map(lambda x:float(x.replace('万公里','')))
# 时间处理
data['上牌时间']=data.上牌时间.map(lambda x:x.split('/')[0])
# 转换成车龄
data['上牌时间']=data.上牌时间.map(lambda x:int(x))
data['车龄'] = (2019-data.上牌时间)
# 里程从大到小排序
data.sort_values('表显里程',ascending=False)
# 重新排序index,并删除原索引
data = data.reset_index(drop=True)
return data def paint(data):
"""数据分析""" # 描述性数据
# print(data.describe()) # 行驶距离分析
sub = [0,3,6,9,12,20]
# pd.cut(data.表显里程,sub).value_counts().plot.bar(rot=0,title='行驶距离分析')
# rot是X轴进行旋转
data['表显里程'].plot(kind='hist', bins=60, figsize=(8,6),xlim=[0,20],title='行驶里程直方图')
plt.show() # 行驶里程箱线图
plt.figure(figsize=(5,7))
plt.boxplot(x=data['表显里程'], showmeans=True, meanline=True)
plt.title('行驶里程箱线图')
plt.ylabel('行驶里程/万公里')
plt.show()
# 箱线图上,均值和中位数比较靠近在5万公里附近。还有1辆开了15万公里以上的老车。上外栏 1.5*IQR 约等于13万公里 # 价格分析图一
sub = [0,3,6,9,12,15,18,21,24,27,30,33,36]
pd.cut(data.价格,sub).value_counts().plot.bar(rot=30,title='价格分析')
plt.show() # 价格分析图二
data['价格'].plot(kind='hist', bins=60, figsize=(5,8),subplots=True,sharex=False, xlim=[0,20],title='二手车各价格区间在销数量图')
plt.show() # 品牌分析
data['品牌'] = data.车型.map(lambda x:x.split(' ')[0])
# 品牌排名前20
data.品牌.value_counts()[:20].plot.barh(title='品牌排名分析')
plt.show() # 按品牌聚合分析 平均里程,最大里程,中位数,数量
d = data['表显里程'].groupby(data['品牌']).agg(['mean', 'max','median','count']).loc[['大众','福特','别克']]
print("品牌聚合分析 \n 平均里程,最大里程,中位数,数量\n{}".format(d)) data['表显里程'].groupby(data['品牌']).agg(['mean','median']).loc[['大众','福特','别克']].plot(kind='bar',rot=30)
plt.show() # 地区 品牌 数量
# print(data.groupby(['城市','品牌'])['品牌'].count()) top10 = ['大众','福特','别克','雪佛兰','吉利','现代','日产','丰田','哈弗H6','本田']
data_top10 = data[data['品牌'].isin(top10)]
print("\n\n\n排名前十品牌汽车总数:".format(data_top10.shape))
print('Top10二手汽车占总二手车比例:%.2f %%' % ((data_top10.shape[0]/data.shape[0])*100)) # 饼图
# 横纵轴标准化处理,保证饼图是正圆,默认为椭圆
plt.axes(aspect='equal')
plt.pie(data_top10['品牌'].value_counts(),explode=[0.2,0.2,0.2,0,0,0,0,0,0,0],startangle=30,labels=top10,autopct='%.2f%%',radius=2)
plt.show() # 车龄分析
data['品牌'].groupby(data['车龄']).count().plot(kind='bar',rot=0,title='二手车已使用年数')
plt.show() def main():
init()
data = data_handle()
paint(data) if __name__ == '__main__':
main()

Python——全国瓜子二手车数据分析的更多相关文章

  1. Python——爬取瓜子二手车

    # coding:utf8 # author:Jery # datetime:2019/5/1 5:16 # software:PyCharm # function:爬取瓜子二手车 import re ...

  2. 号外号外:9月21号关于Speed-BI 《全国人口统计数据分析》开讲了

    引言:如何快速分析纷繁复杂的数据?如何快速做出老板满意的报表?如何快速将Speed-BI云平台运用到实际场景中?       本课程将通过各行各业案例背景,将Speed-BI云平台运用到实际场景中,通 ...

  3. Python在金融,数据分析,和人工智能中的应用

    Python在金融,数据分析,和人工智能中的应用   Python最近取得这样的成功,而且未来似乎还会继续下去,这有许多原因.其中包括它的语法.Python开发人员可用的科学生态系统和数据分析库.易于 ...

  4. 基于 Python 和 Pandas 的数据分析(4) --- 建立数据集

    这一节我想对使用 Python 和 Pandas 的数据分析做一些扩展. 假设我们是亿万富翁, 我们会想要多元化地进行投资, 比如股票, 分红, 金融市场等, 那么现在我们要聚焦房地产市场, 做一些这 ...

  5. 基于 Python 和 Pandas 的数据分析(2) --- Pandas 基础

    在这个用 Python 和 Pandas 实现数据分析的教程中, 我们将明确一些 Pandas 基础知识. 加载到 Pandas Dataframe 的数据形式可以很多, 但是通常需要能形成行和列的数 ...

  6. 基于 Python 和 Pandas 的数据分析(1)

    基于 Python 和 Pandas 的数据分析(1) Pandas 是 Python 的一个模块(module), 我们将用 Python 完成接下来的数据分析的学习. Pandas 模块是一个高性 ...

  7. 预备知识-python核心用法常用数据分析库(上)

    1.预备知识-python核心用法常用数据分析库(上) 目录 1.预备知识-python核心用法常用数据分析库(上) 概述 实验环境 任务一:环境安装与配置 [实验目标] [实验步骤] 任务二:Pan ...

  8. Python scrapy框架爬取瓜子二手车信息数据

    项目实施依赖: python,scrapy ,fiddler scrapy安装依赖的包: 可以到https://www.lfd.uci.edu/~gohlke/pythonlibs/  下载 pywi ...

  9. Python嫌多(线程/进程)太慢? 嫌Scrapy太麻烦?没事,异步高调走起!——瓜子二手车

    基本概念了解: 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类人,我 ...

随机推荐

  1. devops 下测试组织管理面临的挑战及应对

    导读 先从引发的5个问题讲起,再简单回顾一下devops 简介和兴起背景 ,再从itest 测试管理团队的视角提出应对办法 DevOps后,测试面临的挑战        敏捷开发必然是迭代开发管理模式 ...

  2. DVWA之CSRF

    CSRF:跨站请求伪造攻击 Security:Low 级别分析 核心代码 输入数据,以便Burp代理获得请求参数        这里可以将第一行拿出来进行构造链接, http://202.100.10 ...

  3. SpringMVC结果参数转换XSS攻击安全处理

    首先在sprigMvc的配置文件中配置返回结果集使用的类 <!-- 参数转码 --> <mvc:annotation-driven> <!-- 注册处理 JSON 的转换 ...

  4. clientHeight获取屏幕可视化高度

    此时你设置后会发现屏幕的高度出现滚动条 那是因为body有8个外边距 设置margin:0就可以解决 watch可以区监听data中的数据,只要data中的数据发生变化 就可以执行watch中的函数了 ...

  5. JS高阶---H5之Web Workers多线程

    大纲: 主体: (1)介绍 (2)案例 编程实现斐波那契数列的计算 递归调用实现案例: Web Workers多线程的新标准并没有改变JS单线程的本质,分离出的子线程完全受主线程控制,且不得操作DOM ...

  6. 201871010124-王生涛 《面向对象程序设计(java)》第八周学习总结

    博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.co ...

  7. 代码审计-md5加密相等绕过

    <?php $md51 = md5('QNKCDZO'); $a = @$_GET['a']; $md52 = @md5($a); if(isset($a)){ if ($a != 'QNKCD ...

  8. jenkins slave上执行脚本报错

    jenkins slave上执行脚本报错 解决方法:在系统配置中设置shell execuate C:\Windows\system32\cmd.exe 保存即可

  9. zz全面拥抱Transformer

    放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比较 在辞旧迎新的时刻,大家都在忙着回顾过去一年的成绩(或者在灶台前含泪数锅),并对2019做着规划,当然也 ...

  10. 洛谷1439:最长公共子序列(nlogn做法)

    洛谷1439:最长公共子序列(nlogn做法) 题目描述: 给定两个序列求最长公共子序列. 这两个序列一定是\(1\)~\(n\)的全排列. 数据范围: \(1\leq n\leq 10^5\) 思路 ...