精华内容
下载资源
问答
  • 系列文章总目录: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做一个简单的数据分析,对于刚刚接触数据分析的朋友无疑是一个很好的练习。不过,这个分析还存在很多问题需要解决,比如:解决爬虫获取的数据源准确度问题;

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

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

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

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

    展开全文
  • 通过选择功能区上的“分析”>“堆叠标记”菜单项,在任何给定视图中控制标记是堆叠还是重叠 饼图展示 先新建工作表 作地区和交易金额的饼图 标记 比如颜色按照地区来分,就是把地区拖到颜色标记那里就好了 标签 ...

    业务问题

    业务部门给报表提供了下列的要求:

    想要知道那些地区的销售情况比较好,那些地区的销售情况比较差,因此希望能够看到销售指标在全国的分布情况

    想要了解今年的销量和前几年相比是否有增长,因此需要看到销量随着时间的走势

    想要有没有卖的件数少但是消费金额高的优质客户?因此需要了解交易笔数和交易金额两者的分布以及两者之间是否存在一定的相关关系

    需要销售报表,产品信息和会员信息

    步骤:
    1.打开tableau,将所需要的的数据导入到tableau中
    在这里插入图片描述
    2.数据源连接这边可以看到tableau可以连接多种文件格式和数据库
    在这里插入图片描述
    在这里插入图片描述
    3.tableau中对数据文件的两种处理方式有实时live和提取extract
    在这里插入图片描述
    实时连接的好处是直接连接的是数据源,如果数据源(excel或者SQL类数据库)发生变化,tableau里的数据也会相应的自动调整
    坏处在于实时的速度会随着数据量的增大而变慢
    提取连接是将数据从数据源中抽取出来直接封装在tableau中
    好处在于数据经过了tableau的优化,仪表盘的反应速度将会更快
    缺点在于如果数据源发生变化,我们就需要手动刷新提取的数据

    4.如何将制作好的tableau文件发送给其他人
    将文件保存为twbx格式,然后用extract的方式连接数据源
    5.产品表和销售表相连
    在这里插入图片描述
    6.维度类型和度量类型
    ableau在读 入数据的时候,首先会判断字段是维度类型还是度量类型
    来对字段进行初步设置
    维度:分类型数据,标记为蓝色
    维度类型就是文字,比如城市名称,用户姓名
    度量:定量型数据,标记为绿色
    度量类型就是数字,例如年龄,金额
    维度在左上角是abc。度量是#
    在这里插入图片描述
    在这里插入图片描述
    7.tableau还会自动识别地理角色数据和时间类型数据
    在这里插入图片描述
    如果自动识别错误,也可以手动修改
    8.检查结束所有数据格式之后,点击工作表1,就会进入创建数据可视化的工作界面
    在这里插入图片描述
    在这里插入图片描述
    拖动自己想要的行和列进行可视化
    在这里插入图片描述
    切换不同的图表
    在这里插入图片描述
    9.标记
    在这里插入图片描述
    在这里插入图片描述

    按地区的销售状况

    在数据源去雨双击销售金额,会看到一个柱子
    在这里插入图片描述
    鼠标悬停,可以看到总数显示
    在这里插入图片描述
    双击省/自治区,可以看到销售收入被分割成了各个省份的情况
    在这里插入图片描述
    分类型数据和数值型数据双击,tableau会自动生成柱状图,上行有快速转换行列的按钮,还有升序降序的按钮
    在这里插入图片描述
    在这里插入图片描述

    tableau中颜色的使用

    颜色既可以用在连续性变量上,也可以用在类别变量上
    连续性变量上添加相对应的就是渐变色
    再分类型变量上则对应的是集中区分开的颜色
    比如说:
    我们将类别拖到“颜色”上
    在这里插入图片描述
    得到结果:
    在这里插入图片描述
    通过选择功能区上的“分析”>“堆叠标记”菜单项,在任何给定视图中控制标记是堆叠还是重叠

    在这里插入图片描述

    饼图展示

    先新建工作表
    在这里插入图片描述
    作地区和交易金额的饼图
    在这里插入图片描述
    标记
    比如颜色按照地区来分,就是把地区拖到颜色标记那里就好了
    在这里插入图片描述
    标签
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    标签小数点位数的更改
    右击设置格式
    在这里插入图片描述
    选择需要修改的字段
    在这里插入图片描述
    这里就可以改了
    在这里插入图片描述

    探索销售额随着时间的变化趋势

    这是使用折线图了
    tableau的重要优势之一
    新建工作表

    连立销售表和产品表
    选择交易时间和交易金金额

    在这里插入图片描述
    按年份的话,颗粒数太粗了,可以更改日期维度
    在这里插入图片描述
    在这里插入图片描述
    点击小加号可以挖掘到具体多少天
    在这里插入图片描述

    双轴

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    双轴柱状图和折线图结合

    在这里插入图片描述
    在这里插入图片描述

    交易笔数和交易金额之间是否存在此消彼涨的关系?

    散点图比较直观

    选择交易笔数和金额
    在这里插入图片描述
    加上省份标签
    在这里插入图片描述
    在这里插入图片描述
    【重要】加上一个折扣大小
    在这里插入图片描述
    在这里插入图片描述
    折扣较大的都是相对件数多 金额少

    手动进行类别分组

    新建工作表
    导入为新数据源
    导入会员表
    在这里插入图片描述
    年龄的种类太多了
    给年龄手动分组吧
    在这里插入图片描述
    分完组了
    在这里插入图片描述
    那么就可以按照分组来展示变量了
    在这里插入图片描述

    数据桶功能

    画直方图
    了解客户通常一次性会购买多少件产品
    据此来做购买体验优化
    在这里插入图片描述
    数据桶:每一级的间隔
    会有自动推荐数据桶
    在这里插入图片描述
    推荐的是小数,我们可以参考一下,然后手动修改
    在这里插入图片描述
    在这里插入图片描述
    也可以智能生成直方图

    气泡图

    可以智能生成
    选择子类别、销售金额
    在这里插入图片描述
    【重要】显示不同的利润,因为是连续的,就会产生渐变色哦
    在这里插入图片描述
    椅子利润挺大的,因为蓝色很深,橙色代表利润很低

    在这里插入图片描述
    还可以用树状图来看,和气泡图很类似
    在这里插入图片描述
    不同在于气泡图圆圈是随便区别的,树状图的矩形大小是自动按照数值的大小排序的。

    地图功能

    可以细化到县
    新建一张工作表
    选择省/自治区
    在这里插入图片描述
    地图功能的美化
    在这里插入图片描述
    在这里插入图片描述

    仪表板

    在这里插入图片描述
    选择浮动比较好,可以随意改变位置,平铺会占据整个页面
    选择更多里面的适合
    在这里插入图片描述

    调整仪表板标题

    不显示标题
    在这里插入图片描述

    给新创建的仪表板添加一个新标题

    拖动文本到仪表板上
    在这里插入图片描述
    在这里插入图片描述

    仪表板添加筛选器

    方便业务人员互动
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    应用筛选器到仪表盘?

    在这里插入图片描述
    ok
    在这里插入图片描述

    改变筛选器的格式

    在这里插入图片描述
    在这里插入图片描述

    仪表盘中的筛选器应用到其他数据表

    在这里插入图片描述
    在这里插入图片描述

    用tableau制作高级交互式仪表盘

    热力图(需要2018版本以上)

    基于密度
    了解散点在何处比较集中
    新建工作表
    拖拽省、交易id、交易门店到详细信息
    然后选择密度
    在这里插入图片描述

    瀑布图

    展现数据量和增减变化
    使数据排列类似于一条瀑布
    在这里插入图片描述
    快速表计算中的汇总指的是每个值都与上一个值相加得出来的累计总和
    绘制甘特图
    在这里插入图片描述
    在这里插入图片描述
    新建一个字段负利润,调整条形图大小方向
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    如果不用新创建的“负利润”字段,柱子的方向就不对了
    在这里插入图片描述
    加颜色
    在这里插入图片描述
    排序
    在这里插入图片描述
    加上颜色
    编辑颜色
    在这里插入图片描述
    在这里插入图片描述
    中心设置为0
    在这里插入图片描述
    在这里插入图片描述
    这样就比较平滑,红色代表为负

    创建新字段(高级计算功能)

    1.SQL写代码
    2.Tableae直接写公式
    例子:
    交易金额和交易件数计算均值
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    参数控件

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    显示参数控件
    在这里插入图片描述
    、
    目前参数控件还没有用,产生不了互动
    编写一个if语句判断利润高低

    【重要】创建一个判断字段

    在这里插入图片描述
    将判断拖动到颜色选项
    在这里插入图片描述
    在这里插入图片描述

    数据源筛选器

    在这里插入图片描述
    比如我要让华东经理可以看到华东的情况
    那么我们就先筛选一下数据源,然后吧文件发送给华东经理
    在这里插入图片描述

    筛选器实现联动效果

    我们希望筛选工作表2 来实现工作表4的变化,但不想改变工作表3
    在这里插入图片描述
    那么就设置工作表2位筛选器
    在这里插入图片描述同时设置工作表3忽略变动
    在这里插入图片描述
    完成,看一下效果:
    点击工作表2的第一个,工作表4发生了变化,工作表3没有变化
    在这里插入图片描述
    点击工作表2的第三个,工作表4发生了变化,工作表3没有变化
    在这里插入图片描述

    仪表板之间的联动

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    突出显示

    在这里插入图片描述

    URL选项

    在这里插入图片描述

    Tableau的实用小技巧

    在这里插入图片描述

    展开全文
  • 这个实战并不是我自己纯手写的,其中很多想不明白的地方参考了诸多kaggle金牌得主的discussion和idea,其实数据分析本来就不是从0开始,嘿嘿。
  • 下面我们就一起看看python爬虫中scrapy处理项目数据的方法吧。 1、拉取项目 $ git clone https://github.com/jonbakerfish/TweetScraper.git $ cd TweetScraper/ $ pip install -r requirements.txt #add '--user' ...
  • 系列文章总目录:Python数据分析及可视化实例目录1.项目背景:银行体系对于信用可违约进行预测,原始数据集如下:2.分析步骤:(1)数据清洗(Data Cleaning)(2) 探索性可视化(Exploratory Visualization)(3)...
  • 14.3 Spark-SQL编程-PostgreSQL-Cassandra数据分析 “卜算子·大数据”一个开源、成体系的大数据学习教程。——每周日更新 本节主要内容: Spark对PostgreSQL数据源数据的处理,通过Spark SQL对结构化数据进行...
  • 14.4 Spark-SQL编程-PostgreSQL-Cassandra数据分析 “卜算子·大数据”一个开源、成体系的大数据学习教程。——每周日更新 本节主要内容: Spark对Canssandra数据库数据的处理,通过Spark SQL对结构化数据进行...
  • Spark数据项目实例

    2020-11-19 17:23:42
    使用Spark完成下列日志分析项目需求: 日志数据清洗 用户留存分析 活跃用户分析 活跃用户地域信息分析 用户浏览深度分析 数据清洗 1)读入日志文件并转化为RDD[Row]类型 按照Tab其人格数据 过滤掉字段数量少于8个的 ...
  • 目的:本篇给大家介绍一个数据分析的初级项目,目的是通过项目了解如何使用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 ... 20
收藏数 2,063
精华内容 825
关键字:

数据分析项目实例