精华内容
下载资源
问答
  • 系列文章总目录:Python数据分析及可视化实例目录数据集下载Python数据分析及可视化实例之全国各城市房价分析(含数据采集)Python数据分析及可视化实例之帝都房价预测Python数据分析及可视化实例之房屋制热、制冷...

    c0d975d8963d7f196fa9beb6ae7eb07c.png

    系列文章总目录:Python数据分析及可视化实例目录


    dad2d8420252ca887fdd55b10a28e9f1.png

    数据集下载

    Python数据分析及可视化实例之全国各城市房价分析(含数据采集)

    Python数据分析及可视化实例之帝都房价预测

    Python数据分析及可视化实例之房屋制热、制冷功率预测

    Python数据分析及可视化实例之商品销量预测

    Python数据分析及可视化实例之基于Kmean分析RFM进行用户关怀

    Python数据分析及可视化实例之基于RFM基本概念进行用户关怀

    Python数据分析及可视化实例之银行信用卡违约预测

    1.项目背景:

    仅仅用来练手,个股走势如果真预测准确了,都就改行当操盘手了,哈哈!

    但话又说回来,如果把数据曲线特征提取出来,再进行对比异常判断,也是可以的。

    2.分析步骤:

    (1) 时间序列

    (2) 数据重采样

    (3) 预测

    3.分析结果:

    edb6490def6b06974f228ce771af9683.png

    0b7c575ac22f3369fb4d06d324fb65f7.png

    7320c39070af36395d14de9c5e88ee1b.png

    4.源码:

    # coding: utf-8
    
    
    %matplotlib inline
    import pandas as pd
    import datetime
    import matplotlib.pylab as plt
    import seaborn as sns
    from matplotlib.pylab import style
    from statsmodels.tsa.arima_model import ARIMA
    from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
    style.use('ggplot')    
    plt.rcParams['font.sans-serif'] = ['SimHei'] 
    plt.rcParams['axes.unicode_minus'] = False  
    
    stockFile = 'data/T10yr.csv'
    stock = pd.read_csv(stockFile, index_col=0, parse_dates=[0])
    stock.head(10)
    
    stock_week = stock['Close'].resample('W-MON').mean()
    stock_train = stock_week['2000':'2015']
    stock_train.head()
    
    stock_train.plot(figsize=(12,8))
    plt.legend(bbox_to_anchor=(1.25, 0.5))
    plt.title("Stock Close")
    sns.despine()
    
    stock_diff = stock_train.diff()
    stock_diff = stock_diff.dropna()
    stock_diff = stock_train.diff()
    stock_diff = stock_diff.dropna()
    
    plt.figure()
    plt.plot(stock_diff)
    plt.title('一阶差分')
    plt.show()
    
    pacf = plot_pacf(stock_diff, lags=20)
    plt.title("PACF")
    pacf.show()
    
    acf = plot_acf(stock_diff, lags=20)
    plt.title("ACF")
    acf.show()
    
    # 核心
    model = ARIMA(stock_train, order=(1, 1, 1),freq='W-MON')
    result = model.fit()
    #print(result.summary())
    plt.figure(figsize=(6, 6))
    plt.xticks(rotation=45)
    plt.plot(pred)
    plt.plot(stock_train)
    
    # 搬砖也是个力气活,可视化采用Bokeh并非plt,以后再专门教大家使用Bokeh和Flask交互。

    数据集下载地址:https://intumu.com/auth/send_file?file_name=1609315797_T10yr.zip

    新手可查阅历史目录:

    yeayee:Python数据分析及可视化实例目录zhuanlan.zhihu.com
    9988031d52758283fe8b5d3ef1a6c470.png

    839eadf5a2864c17550f22490632e678.png

    最后,别只收藏不关注哈

    展开全文
  • 零基础入门Python数据分析,最好的实战项目作者:PHPYuan 时间:2018-07-03 23:40:14随着大数据的火爆,大数据相关人才的需求与日俱增,岗位增多,这也导致了数据分析相关的岗位出现了供不应求的状况,从而引发了一波...

    零基础入门Python数据分析,最好的实战项目

    作者:PHPYuan 时间:2018-07-03 23:40:14

    随着大数据的火爆,大数据相关人才的需求与日俱增,岗位增多,这也导致了数据分析相关的岗位出现了供不应求的状况,从而引发了一波关于数据分析的浪潮。

    数据分析是基于商业目的,有目的的进行收集、整理、加工和分析数据,提炼有价信息的一个过程。

    153060035519317354f42a9

    一个数据分析的项目,你的数据对象是谁?商业目的是什么?要解决什么业务问题?数据分析师对这些都要了然于心。基于商业的理解,整理分析框架和分析思路。例如,减少新客户的流失、优化活动效果、提高客户响应率等等。不同的项目对数据的要求,使用的分析手段也是不一样的。所以,我们用实战项目来解析数据分析。

    数据初探

    首先导入要使用的科学计算包"numpy","pandas",可视化"matplotlib","seaborn",以及机器学习包"sklearn"。import pandas as pdimport numpy as npimport seaborn as snsimport matplotlib as mpl?import matplotlib.pyplot as pltfrom IPython.display import displayplt.style.use("fivethirtyeight")sns.set_style({'font.sans-serif':['simhei','Arial']})%matplotlib inline??# 检查Python版本from sys import version_infoif version_info.major != 3: raise Exception('请使用Python3来完成项目')

    然后导入数据,并进行初步的观察,这些观察包括了解数据特征的缺失值,异常值,以及大概的描述性统计。# 导入二手房数据lianjia_df = pd.read_csv('lianjia.csv')display(lianjia_df.head(n=2))

    15306005047732de4b01913

    我们初步观察到了共11个特征变量,在这里Price是我们的目标变量。我们继续深入观察。# 检查缺失值情况lianjia_df.info()

    15306005256780e6b4f0fe9

    发现了数据集一共有23677条数据,其中Elevator特征有明显的缺失值。lianjia_df.describe()

    1530600597744b58983632c

    上面的结果给出了特征值是数值的一些统计值,包括平均数,标准差,中位数,最小值,最大值,25%分位数,75%分位数。这些统计结果简单明了,对于初始了解一个特征好坏非常的有用,比如我们观察到 Size 特征的最大值为1019平米,最小值为2平米,那么我们就要思考这个在实际中存不存在,如果不存在就没有意义,那么这个数据就是一个异常值,会严重影响模型的性能。

    当然,这只是初步观察,后续我们会用数据可视化来清晰的展示,并证实我们的猜测。# 添加新特征房屋均价df = lianjia_df.copy()df['PerPrice'] = lianjia_df['Price']/lianjia_df['Size']?# 重新摆放列位置columns = ['Region', 'District', 'Garden', 'Layout', 'Floor', 'Year', 'Size', 'Elevator', 'Direction', 'Renovation', 'PerPrice', 'Price']df = pd.DataFrame(df, columns = columns)?# 重新审视数据集display(df.head(n=2))

    我们发现ID特征其实没有什么实际意义,所以将其移除。由于房屋单价分析起来比较方便,简单的使用总价/面积就可得到,所以增加一个新的特征 PerPrice(只用于分析,不是预测特征)。另外,特征的顺序也被调整了一下,看起来比较舒服。

    15306006222539f576e0849

    数据可视化分析

    Region特征分析

    对于区域特征,我们可以分析不同区域房价和数量的对比。# 对二手房区域分组对比二手房数量和每平米房价df_house_count = df.groupby('Region')['Price'].count().sort_values(ascending=False).to_frame().reset_index()df_house_mean = df.groupby('Region')['PerPrice'].mean().sort_values(ascending=False).to_frame().reset_index()?f, [ax1,ax2,ax3] = plt.subplots(3,1,figsize=(20,15))sns.barplot(x='Region', y='PerPrice', palette="Blues_d", data=df_house_mean, ax=ax1)ax1.set_title('北京各大区二手房每平米单价对比',fontsize=15)ax1.set_xlabel('区域')ax1.set_ylabel('每平米单价')?sns.barplot(x='Region', y='Price', palette="Greens_d", data=df_house_count, ax=ax2)ax2.set_title('北京各大区二手房数量对比',fontsize=15)ax2.set_xlabel('区域')ax2.set_ylabel('数量')?sns.boxplot(x='Region', y='Price', data=df, ax=ax3)ax3.set_title('北京各大区二手房房屋总价',fontsize=15)ax3.set_xlabel('区域')ax3.set_ylabel('房屋总价')?plt.show()

    153060065160184cdd89d90

    153060065823570542d0245

    15306006788804e7b753431

    使用了pandas的网络透视功能groupby分组排序。区域特征可视化直接采用 seaborn 完成,颜色使用调色板palette参数,颜色渐变,越浅说明越少,反之越多。

    可以观察到:二手房均价:西城区的房价最贵均价大约11万/平,因为西城在二环以里,且是热门学区房的聚集地。其次是东城大约10万/平,然后是海淀大约8.5万/平,其它均低于8万/平。

    二手房房数量:从数量统计上来看,目前二手房市场上比较火热的区域。海淀区和朝阳区二手房数量最多,差不多都接近3000套,毕竟大区,需求量也大。然后是丰台区,近几年正在改造建设,有赶超之势。

    二手房总价:通过箱型图看到,各大区域房屋总价中位数都都在1000万以下,且房屋总价离散值较高,西城最高达到了6000万,说明房屋价格特征不是理想的正太分布。

    Size特征分析f, [ax1,ax2] = plt.subplots(1, 2, figsize=(15, 5))# 建房时间的分布情况sns.distplot(df['Size'], bins=20, ax=ax1, color='r')sns.kdeplot(df['Size'], shade=True, ax=ax1)# 建房时间和出售价格的关系sns.regplot(x='Size', y='Price', data=df, ax=ax2)plt.show()

    1530600703603eea8ed4a1eSize 分布:

    通过 distplot 和 kdeplot绘制柱状图观察 Size 特征的分布情况,属于长尾类型的分布,这说明了有很多面积很大且超出正常范围的二手房。Size 与 Price 的关系:通过regplot绘制了 Size 和 Price 之间的散点图,发现 Size 特征基本与Price呈现线性关系,符合基本常识,面积越大,价格越高。但是有两组明显的异常点:1. 面积不到10平米,但是价格超出10000万;2. 一个点面积超过了1000平米,价格很低,这就需要看看这是什么情况。df.loc[df['Size']<10]

    153060073026455a47fb872

    经过查看发现这组数据是别墅,出现异常的原因是由于别墅结构比较特殊(无朝向无电梯),字段定义与二手商品房不太一样导致爬虫爬取数据错位。也因别墅类型二手房不在我们的考虑范围之内,故将其移除再次观察Size分布和Price关系。df.loc[df['Size']>1000]

    1530600753891b1074480f1

    经观察这个异常点不是普通的民用二手房,很可能是商用房,所以才有1房间0厅确有如此大超过1000平米的面积,这就可以选择移除。df = df[(df['Layout']!='叠拼别墅')&(df['Size']<1000)]

    15306007719284ff1a3499a

    重新进行可视化发现就没有明显的异常点了。

    Floor 特征分析f, ax1= plt.subplots(figsize=(20,5))sns.countplot(x='Floor', data=df, ax=ax1)ax1.set_title('房屋户型',fontsize=15)ax1.set_xlabel('数量')ax1.set_ylabel('户型')plt.show()

    1530600784109c0ab379c31

    可以看到,6层的二手房数量最多,但是单独的楼层特征没有什么意义,因为每个小区住房的总楼层数都不一样,我们需要知道楼层的相对意义。另外,楼层与文化也有很重要联系,比如中国文化中七上八下,七层可能受欢迎,房价也贵,而一般的楼也不会有4层或18层。当然,正常情况下中间楼层是比较受欢迎的,价格也高,底层和顶层受欢迎度较低,价格也相对较低。所以楼层是一个非常复杂的特征,对房价影响也比较大。

    总结:

    本次分享旨在让大家了解如何用Python做一个简单的数据分析,对于刚刚接触数据分析的朋友无疑是一个很好的练习。不过,这个分析还存在很多问题需要解决,比如:解决爬虫获取的数据源准确度问题;

    需要爬取或者寻找更多好的售房特征;

    分享 IT 技术和行业经验,请关注-技术学派。

    分享到:

    << 上一篇:2018为什么你一定要学Python (2018-07-04 00:24)

    展开全文
  • 作者:xiaoyu微信公众号:Python数据科学目的:本篇给大家介绍一个数据分析的初级项目,目的是通过项目了解如何使用Python进行简单的数据分析。数据源:博主通过爬虫采集的链家全网北京二手房数据(公众号后台回复?...

    作者:xiaoyu

    微信公众号:Python数据科学目的:本篇给大家介绍一个数据分析的初级项目,目的是通过项目了解如何使用Python进行简单的数据分析。

    数据源:博主通过爬虫采集的链家全网北京二手房数据(公众号后台回复?二手房数据?便可获取)。

    下面是第二篇建模篇,看完这篇可继续研究这篇。

    数据初探

    首先导入要使用的科学计算包numpy,pandas,可视化matplotlib,seaborn,以及机器学习包sklearn。import?pandas?as?pd?import?numpy?as?np?import?seaborn?as?sns?import?matplotlib?as?mpl?import?matplotlib.pyplot?as?plt?from?IPython.display?import?display?plt.style.use("fivethirtyeight")?sns.set_style({'font.sans-serif':['simhei','Arial']})?%matplotlib?inline?#?检查Python版本?from?sys?import?version_info?if?version_info.major?!=?3:?????raise?Exception('请使用Python?3?来完成此项目')

    然后导入数据,并进行初步的观察,这些观察包括了解数据特征的缺失值,异常值,以及大概的描述性统计。#?导入链家二手房数据?lianjia_df?=?pd.read_csv('lianjia.csv')?display(lianjia_df.head(n=2))

    AAffA0nNPuCLAAAAAElFTkSuQmCC

    初步观察到一共有11个特征变量,Price?在这里是我们的目标变量,然后我们继续深入观察一下。#?检查缺失值情况?lianjia_df.info()

    AAffA0nNPuCLAAAAAElFTkSuQmCC

    发现了数据集一共有23677条数据,其中Elevator特征有明显的缺失值。lianjia_df.describe()

    AAffA0nNPuCLAAAAAElFTkSuQmCC

    上面结果给出了特征值是数值的一些统计值,包括平均数,标准差,中位数,最小值,最大值,25%分位数,75%分位数。这些统计结果简单直接,对于初始了解一个特征好坏非常有用,比如我们观察到?Size 特征?的最大值为1019平米,最小值为2平米,那么我们就要思考这个在实际中是不是存在的,如果不存在没有意义,那么这个数据就是一个异常值,会严重影响模型的性能。

    当然,这只是初步观察,后续我们会用数据可视化来清晰的展示,并证实我们的猜测。#?添加新特征房屋均价?df?=?lianjia_df.copy()?df['PerPrice']?=?lianjia_df['Price']/lianjia_df['Size']?#?重新摆放列位置?columns?=?['Region',?'District',?'Garden',?'Layout',?'Floor',?'Year',?'Size',?'Elevator',?'Direction',?'Renovation',?'PerPrice',?'Price']?df?=?pd.DataFrame(df,?columns?=?columns)?#?重新审视数据集?display(df.head(n=2))

    我们发现Id特征其实没有什么实际意义,所以将其移除。由于房屋单价分析起来比较方便,简单的使用总价/面积就可得到,所以增加一个新的特征?PerPrice(只用于分析,不是预测特征)。另外,特征的顺序也被调整了一下,看起来比较舒服。

    AAffA0nNPuCLAAAAAElFTkSuQmCC

    数据可视化分析

    Region特征分析

    对于区域特征,我们可以分析不同区域房价和数量的对比。#?对二手房区域分组对比二手房数量和每平米房价?df_house_count?=?df.groupby('Region')['Price'].count().sort_values(ascending=False).to_frame().reset_index()?df_house_mean?=?df.groupby('Region')['PerPrice'].mean().sort_values(ascending=False).to_frame().reset_index()?f,?[ax1,ax2,ax3]?=?plt.subplots(3,1,figsize=(20,15))?sns.barplot(x='Region',?y='PerPrice',?palette="Blues_d",?data=df_house_mean,?ax=ax1)?ax1.set_title('北京各大区二手房每平米单价对比',fontsize=15)?ax1.set_xlabel('区域')?ax1.set_ylabel('每平米单价')?sns.barplot(x='Region',?y='Price',?palette="Greens_d",?data=df_house_count,?ax=ax2)?ax2.set_title('北京各大区二手房数量对比',fontsize=15)?ax2.set_xlabel('区域')?ax2.set_ylabel('数量')?sns.boxplot(x='Region',?y='Price',?data=df,?ax=ax3)?ax3.set_title('北京各大区二手房房屋总价',fontsize=15)?ax3.set_xlabel('区域')?ax3.set_ylabel('房屋总价')?plt.show()

    AAffA0nNPuCLAAAAAElFTkSuQmCC

    AAffA0nNPuCLAAAAAElFTkSuQmCC

    AAffA0nNPuCLAAAAAElFTkSuQmCC

    使用了pandas的网络透视功能groupby分组排序。区域特征可视化直接采用?seaborn完成,颜色使用调色板palette参数,颜色渐变,越浅说明越少,反之越多。

    可以观察到:二手房均价:西城区的房价最贵均价大约11万/平,因为西城在二环以里,且是热门学区房的聚集地。其次是东城大约10万/平,然后是海淀大约8.5万/平,其它均低于8万/平。

    二手房房数量:从数量统计上来看,目前二手房市场上比较火热的区域。海淀区和朝阳区二手房数量最多,差不多都接近3000套,毕竟大区,需求量也大。然后是丰台区,近几年正在改造建设,有赶超之势。

    二手房总价:通过箱型图看到,各大区域房屋总价中位数都都在1000万以下,且房屋总价离散值较高,西城最高达到了6000万,说明房屋价格特征不是理想的正太分布。

    Size特征分析f,?[ax1,ax2]?=?plt.subplots(1,?2,?figsize=(15,?5))?#?建房时间的分布情况?sns.distplot(df['Size'],?bins=20,?ax=ax1,?color='r')?sns.kdeplot(df['Size'],?shade=True,?ax=ax1)?#?建房时间和出售价格的关系?sns.regplot(x='Size',?y='Price',?data=df,?ax=ax2)?plt.show()

    AAffA0nNPuCLAAAAAElFTkSuQmCCSize 分布:

    通过?distplot和?kdeplot?绘制柱状图观察 Size 特征的分布情况,属于长尾类型的分布,这说明了有很多面积很大且超出正常范围的二手房。Size 与 Price 的关系:

    通过?regplot?绘制了 Size 和 Price 之间的散点图,发现 Size 特征基本与Price呈现线性关系,符合基本常识,面积越大,价格越高。但是有两组明显的异常点:1. 面积不到10平米,但是价格超出10000万;2. 一个点面积超过了1000平米,价格很低,需要查看是什么情况。df.loc[df['Size']<?10]

    AAffA0nNPuCLAAAAAElFTkSuQmCC

    经过查看发现这组数据是别墅,出现异常的原因是由于别墅结构比较特殊(无朝向无电梯),字段定义与二手商品房不太一样导致爬虫爬取数据错位。也因别墅类型二手房不在我们的考虑范围之内,故将其移除再次观察Size分布和Price关系。df.loc[df['Size']>1000]

    AAffA0nNPuCLAAAAAElFTkSuQmCC

    经观察这个异常点不是普通的民用二手房,很可能是商用房,所以才有1房间0厅确有如此大超过1000平米的面积,这里选择移除。df?=?df[(df['Layout']!='叠拼别墅')&(df['Size']<1000)]

    AAffA0nNPuCLAAAAAElFTkSuQmCC

    重新进行可视化发现就没有明显的异常点了。

    Layout特征分析f,?ax1=?plt.subplots(figsize=(20,20))?sns.countplot(y='Layout',?data=df,?ax=ax1)?ax1.set_title('房屋户型',fontsize=15)?ax1.set_xlabel('数量')?ax1.set_ylabel('户型')?plt.show()

    AAffA0nNPuCLAAAAAElFTkSuQmCC

    这个特征真是不看不知道,各种厅室组合搭配,竟然还有9室3厅,4室0厅等奇怪的结构。其中,2室一厅占绝大部分,其次是3室一厅,2室2厅,3室两厅。但是仔细观察特征分类下有很多不规则的命名,比如2室一厅与2房间1卫,还有别墅,没有统一的叫法。这样的特征肯定是不能作为机器学习模型的数据输入的,需要使用特征工程进行相应的处理。

    Renovation 特征分析df['Renovation'].value_counts()

    精装 11345

    简装 8497

    其他 3239

    毛坯 576

    南北?20

    Name: Renovation, dtype: int64

    发现Renovation装修特征中竟然有南北,它属于朝向的类型,可能是因为爬虫过程中一些信息位置为空,导致"Direction”朝向特征出现在这里,所以需要清除或替换掉。#?去掉错误数据"南北”,因为爬虫过程中一些信息位置为空,导致"Direction”的特征出现在这里,需要清除或替换?df['Renovation']?=?df.loc[(df['Renovation']?!=?'南北'),?'Renovation']?#?画幅设置?f,?[ax1,ax2,ax3]?=?plt.subplots(1,?3,?figsize=(20,?5))?sns.countplot(df['Renovation'],?ax=ax1)?sns.barplot(x='Renovation',?y='Price',?data=df,?ax=ax2)?sns.boxplot(x='Renovation',?y='Price',?data=df,?ax=ax3)?plt.show()

    AAffA0nNPuCLAAAAAElFTkSuQmCC

    AAffA0nNPuCLAAAAAElFTkSuQmCC

    AAffA0nNPuCLAAAAAElFTkSuQmCC

    观察到,精装修的二手房数量最多,简装其次,也是我们平日常见的。而对于价格来说,毛坯类型却是最高,其次是精装修。

    Elevator 特征分析

    初探数据的时候,我们发现?Elevator?特征是有大量缺失值的,这对于我们是十分不利的,首先我们先看看有多少缺失值:misn?=?len(df.loc[(df['Elevator'].isnull()),?'Elevator'])?print('Elevator缺失值数量为:'+?str(misn))

    Elevator 缺失值数量为:8237

    这么多的缺失值怎么办呢?这个需要根据实际情况考虑,常用的方法有平均值/中位数填补法,直接移除,或者根据其他特征建模预测等。

    这里我们考虑填补法,但是有无电梯不是数值,不存在平均值和中位数,怎么填补呢?这里给大家提供一种思路:就是根据楼层 Floor 来判断有无电梯,一般的楼层大于6的都有电梯,而小于等于6层的一般都没有电梯。有了这个标准,那么剩下的就简单了。#?由于存在个别类型错误,如简装和精装,特征值错位,故需要移除?df['Elevator']?=?df.loc[(df['Elevator']?==?'有电梯')|(df['Elevator']?==?'无电梯'),?'Elevator']?#?填补Elevator缺失值?df.loc[(df['Floor']>6)&(df['Elevator'].isnull()),?'Elevator']?=?'有电梯'?df.loc[(df['Floor']<=6)&(df['Elevator'].isnull()),?'Elevator']?=?'无电梯'?f,?[ax1,ax2]?=?plt.subplots(1,?2,?figsize=(20,?10))?sns.countplot(df['Elevator'],?ax=ax1)?ax1.set_title('有无电梯数量对比',fontsize=15)?ax1.set_xlabel('是否有电梯')?ax1.set_ylabel('数量')?sns.barplot(x='Elevator',?y='Price',?data=df,?ax=ax2)?ax2.set_title('有无电梯房价对比',fontsize=15)?ax2.set_xlabel('是否有电梯')?ax2.set_ylabel('总价')?plt.show()

    AAffA0nNPuCLAAAAAElFTkSuQmCC

    结果观察到,有电梯的二手房数量居多一些,毕竟高层土地利用率比较高,适合北京庞大的人群需要,而高层就需要电梯。相应的,有电梯二手房房价较高,因为电梯前期装修费和后期维护费包含内了(但这个价格比较只是一个平均的概念,比如无电梯的6层豪华小区当然价格更高了)。

    Year 特征分析grid?=?sns.FacetGrid(df,?row='Elevator',?col='Renovation',?palette='seismic',size=4)?grid.map(plt.scatter,?'Year',?'Price')?grid.add_legend()

    AAffA0nNPuCLAAAAAElFTkSuQmCC

    在Renovation和Elevator的分类条件下,使用?FaceGrid?分析 Year 特征,观察结果如下:整个二手房房价趋势是随着时间增长而增长的;

    2000年以后建造的二手房房价相较于2000年以前有很明显的价格上涨;

    1980年之前几乎不存在有电梯二手房数据,说明1980年之前还没有大面积安装电梯;

    1980年之前无电梯二手房中,简装二手房占绝大多数,精装反而很少;

    Floor 特征分析f,?ax1=?plt.subplots(figsize=(20,5))?sns.countplot(x='Floor',?data=df,?ax=ax1)?ax1.set_title('房屋户型',fontsize=15)?ax1.set_xlabel('数量')?ax1.set_ylabel('户型')?plt.show()

    AAffA0nNPuCLAAAAAElFTkSuQmCC

    可以看到,6层二手房数量最多,但是单独的楼层特征没有什么意义,因为每个小区住房的总楼层数都不一样,我们需要知道楼层的相对意义。另外,楼层与文化也有很重要联系,比如中国文化七上八下,七层可能受欢迎,房价也贵,而一般也不会有4层或18层。当然,正常情况下中间楼层是比较受欢迎的,价格也高,底层和顶层受欢迎度较低,价格也相对较低。所以楼层是一个非常复杂的特征,对房价影响也比较大。

    总结

    本次分享旨在让大家了解如何用Python做一个简单的数据分析,对于刚刚接触数据分析的朋友无疑是一个很好的练习。不过,这个分析还存在很多问题需要解决,比如:解决爬虫获取的数据源准确度问题;

    需要爬取或者寻找更多好的售房特征;

    需要做更多地特征工程工作,比如数据清洗,特征选择和筛选;

    使用统计模型建立回归模型进行价格预测;

    更多内容会慢慢介绍和分享,敬请期待。

    展开全文
  • 系列文章总目录:Python数据分析及可视化实例目录1.项目背景:仅仅用来练手,个股走势如果真预测准确了,都就改行当操盘手了,哈哈!但话又说回来,如果把数据曲线特征提取出来,再进行对比异常判断,也是可以的。...

    ae8c9d2ed794870a22948931202171e5.png

    系列文章总目录:Python数据分析及可视化实例目录


    ae9f1a9f7956f7d02a990fee88d2337b.png

    1.项目背景:

    仅仅用来练手,个股走势如果真预测准确了,都就改行当操盘手了,哈哈!

    但话又说回来,如果把数据曲线特征提取出来,再进行对比异常判断,也是可以的。

    数据源,请关注微信公众号:海豹战队,回复:数据

    2.分析步骤:

    (1) 时间序列

    (2) 数据重采样

    (3) 预测

    3.分析结果:

    1259eff82354527cf64819ab044e5ed6.png

    1cbc5156e5b1f3fd5663e68e4ba8558f.png

    030cf71bdded88c50f6922fca089b8bb.png

    4.源码(公众号:海豹战队):

    # coding: utf-8
    # 亲,转载即同意帮推公众号:海豹战队,嘿嘿......
    # 数据源可关注公众号:海报战队,后留言:数据
    %matplotlib inline
    import pandas as pd
    import datetime
    import matplotlib.pylab as plt
    import seaborn as sns
    from matplotlib.pylab import style
    from statsmodels.tsa.arima_model import ARIMA
    from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
    style.use('ggplot')    
    plt.rcParams['font.sans-serif'] = ['SimHei'] 
    plt.rcParams['axes.unicode_minus'] = False  
    
    stockFile = 'data/T10yr.csv'
    stock = pd.read_csv(stockFile, index_col=0, parse_dates=[0])
    stock.head(10)
    
    stock_week = stock['Close'].resample('W-MON').mean()
    stock_train = stock_week['2000':'2015']
    stock_train.head()
    
    stock_train.plot(figsize=(12,8))
    plt.legend(bbox_to_anchor=(1.25, 0.5))
    plt.title("Stock Close")
    sns.despine()
    
    stock_diff = stock_train.diff()
    stock_diff = stock_diff.dropna()
    stock_diff = stock_train.diff()
    stock_diff = stock_diff.dropna()
    
    plt.figure()
    plt.plot(stock_diff)
    plt.title('一阶差分')
    plt.show()
    
    pacf = plot_pacf(stock_diff, lags=20)
    plt.title("PACF")
    pacf.show()
    
    acf = plot_acf(stock_diff, lags=20)
    plt.title("ACF")
    acf.show()
    
    # 核心
    model = ARIMA(stock_train, order=(1, 1, 1),freq='W-MON')
    result = model.fit()
    #print(result.summary())
    plt.figure(figsize=(6, 6))
    plt.xticks(rotation=45)
    plt.plot(pred)
    plt.plot(stock_train)
    
    # 搬砖也是个力气活,可视化采用Bokeh并非plt,以后再专门教大家使用Bokeh和Flask交互。

    老鸟可去另一专栏:Python中文社区

    新手可查阅历史目录:

    yeayee:Python数据分析及可视化实例目录zhuanlan.zhihu.com
    7196465b434dcd0b96a6e643522a967e.png

    ca0f7cb77a5529f8ee9061c1de8ce966.png

    最后,别只收藏不关注哈

    展开全文
  • 系列文章总目录:Python数据分析及可视化实例目录1.项目背景:分词用上一期的结巴搞定之后,形成了一个中文列表,但是计算机不认识汉字,需要转化成向量然后进行分析,大体上自然语言处理用在:主题获取,文本分类,...
  • (2)专注于Python数据分析与可视化操作中实际用到的技术。相比大而全的书籍资料,本书能让读者尽快上手,开始项目开发。(3)书中的“新手问答”和“小试牛刀”栏目能让读者巩固知识,举一反三,学以致用。《Python...
  • 目的:本篇给大家介绍一个数据分析的初级项目,目的是通过项目了解如何使用Python进行简单的数据分析。数据源:博主通过爬虫采集的链家全网北京二手房数据(公众号后台回复 二手房数据 即可获取)。下面是第二篇建模...
  • 训练数据集: (891, 12) 测试数据集: (418, 11) # merge data sets to facilitate simultaneous cleaning of two data sets full = train . append ( test , ignore_index = True ) print ( '合并后的...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 301
精华内容 120
关键字:

python数据分析项目实例

python 订阅