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

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. 001-k8s集群的安装

    k8s集群的安装 1.实验描述 通过搭建 K8S 的集群,来学习对容器的编排 2.实验环境 [你可能需要][CentOS 7 搭建模板机]点我快速打开文章 [你可能需要][VMware 从模板机快速克 ...

  2. 如何用python编写一个计时器的程序

    python计时器的程序的代码和注释 import time as t #引入time模块 class MyTimer():     def __init__(self): #构造函数         ...

  3. V4l2初识(七)-----------浅析app获取虚拟摄像头数据的过程

    继续分析数据的获取过程: 1.请求分配的缓冲区: ioctl(4,VIDIOC_REQBUFS) vidioc_reqbufs 2.查询和映射缓冲区   ioctl(4,VIDIOC_QUERYBUF ...

  4. 201871010132--张潇潇--《面向对象程序设计(java)》第十六周学习总结

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

  5. django学习-数据库配置-创建模型

    数据库配置 在mysite/settings.py中,包含了django项目设置的python模块 通常,这个配置文件使用SQLite作为默认数据库.如果你不熟悉数据库,或者只是想尝试下django, ...

  6. mybatis-config.xml 知识点

    typeAliases 标签:配置别名,主要用于 XML 文件中的 resultType 参数. mappers 标签:配置所有的 mapper. MyBatis 和 Spring Boot 配合使用 ...

  7. Druid(数据库连接池) 学习资料

    学习资料 网址 官方文档 https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98 主流Java数据库连接池 ...

  8. 如何有效的清理yum缓存

    如果遇到下面问题,请执行下面命令   yum clean all   #清除缓存

  9. OpenStack产品摘要

    docs OpenStack 核心服务 计算 Nova:虚拟化设施资源管理 ZUN:容器管理 QINLING:Serveless Function 裸金属 IRONIC:裸金属资源管理 CYBORDF ...

  10. AOP的理解与实现

    AOP:面向切面编程,在不破坏原有代码的情况下,提供新的功能.可以使用AOP添加通用功能,比如事务.日志.权限.异常.缓存... 常见的AOP:MVC中的过滤器.HttpModule... 如何实现A ...