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

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. Rust中的枚举及模式匹配

    这个enum的用法,比c要强,和GO类似. enum Coin { Penny, Nickel, Dime, Quarter, } fn value_in_cents(coin: Coin) -> ...

  2. node知识

    node中的url url中的方法: parse,resolve,format: 方法parse: 例子:url.parse('http://imooc.com/course/list'); 结果:{ ...

  3. 201871010118-唐敬博《面向对象程序设计(java)》第十六周学习总结

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

  4. 基于 webdriver 的测试代码日常调试方python 篇

    看到论坛有人写了JAVA的测试代码日常设计,就给大家分享一下偶自己平时是如何测试测试代码的.主要基于python语言.基于 webdriver 的日常调试在 python交互模式下非常方便,打开pyt ...

  5. async-profiler 容器使用常见问题

    Failed to inject profiler log Failed to inject profiler into 1830 linux-vdso.so.1 => (0x00007ffdf ...

  6. redixdb 基于redis 协议的实时key-value 存储

    redixdb 是一个基于redis 协议搞的一个实时key value 处理的轻量级应用,支持多种后端 存储模型. 以下是一个小版的容器镜像(官方的太大了) dockerfile   FROM go ...

  7. 数据结构——链栈(link stack)

    /* linkStack.c */ /* 链栈 */ #include <stdio.h> #include <stdlib.h> #include <stdbool.h ...

  8. <DFS & BFS> 130 127

    130. Surrounded Regions BFS: 把所有边界上的O先换成A(标记),再深度遍历周围的点. 最后把O换成X(表示不符合要求),所有的A换回O class Solution { p ...

  9. [LeetCode] 58. Length of Last Word 求末尾单词的长度

    Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the l ...

  10. 计时任务之StopWatch

    StopWatch对应的中文名称为秒表,经常我们对一段代码耗时检测的代码如下: long startTime = System.currentTimeMillis(); // 业务处理代码 doSom ...