Pandas、Matplotlib、Pyecharts数据分析实践

简介: 上篇中,我们对比了各种方式下的爬虫效率,并得到了安居客平台杭州的二手房数据3000条。今天,以此3000条数据为对象,我们尝试应用Pandas、Matplotlib和Pyecharts3个数据分析及可视化库进行练手实践。

00   分析目标  


  1. 对数据进行去重、筛选空值行,对部分字段进行清洗处理
  2. 多维度刻画杭州在售二手房信息,包括房源售价、主打标签、建筑年份、户型、楼层、行政区划等分布情况,给出在售房源标题的词云
  3. 分析不同区划、不同建筑年份、不同标签房源的数量和均价情况


注:所有数据处理和分析都应用pandas进行,可视化部分除3张复合图表由Matplotlib制作外,其余均应用Pyecharts完成。


 01   数据处理  


1.用pandas读取MySQL数据库中的3000条信息,并完成去重


db = pymysql.connect(host="localhost",user="root",password="123456",db="ajkhzesf")
sql_select = 'select title, houseType, area, floor, buildYear, adrres, tags, broker, totalPrice, price from hzesfmultire'
df = pd.read_sql(sql_select, db)
df = df.drop_duplicates()


640.png


2.对总价和均价两个字段进行处理并变换为浮点型


df['totalPrice'] = df['totalPrice'].str.replace('万','').astype(float)
df['price'] = df['price'].str.replace('元/m²','').astype(float)


640.png


3.通过小区/地址字段信息提取房源所在行政区划


regions = ['上城区','下城区','拱墅区','滨江区','江干区','西湖区','萧山区','余杭区','临安市','富阳区','建德市','淳安县','桐庐县']
df['region'] = ""
for region in regions:
   df.region[df['adrres'].str.contains(region[:2])] = region
df['region']


640.png


后续做图需要,这里临安仍以”临安市”存在


02   多维度刻画二手房市场  


1.   房源售价


640.png


总价200万、单价2.3万,对于杭州这样的大都市来说,也算是刚需友好了。


2.   主打标签


640.png


同新房市场一样,房源的售卖标签还是主要围绕品质、配套、出行和宜居几个方面来宣传。


3.   建筑年份


640.png

“满五”、“满二”政策下,2014年注定成为二手房市场存量最大的建筑年份。


4.   户型/楼层


640.png


640.png

如果分别用一个词来概括二手房市场的户型和楼层特点,那么我选择“刚需”和“中庸”。


5.   行政区划


640.png


在二手房市场上,余杭的存量(2000+)以大比分完爆其他所有区划。


6.   在售房源标题词云


640.jpg

  • 精装、地铁、三房、户型,是最大卖点
  • 朝南、楼层、品质、车位,具有别样吸引力
  • 81/85/86/88/89/92,主打刚需市场


7.  最后给出中介经手的二手房数量信息


640.png

同时负责联络管理近40个房源信息,也是蛮拼的。


   03   二手房均价情况  


1.   不同区划均价


640.png



毫无疑问,6大主城区均价要更高一筹,萧山余杭作为杭州发展潜力股也有着较高的房价水平。外围区划则相对逊色不少。


2.   不同年份均价


640.png

如前所述,二手房市场数量最大的是2014年,因为刚好符合满五的低税政策; 2017年以后的房子因为意味着较高的计税,所以在售房源很少,而且因为房龄短均价高,整体市场偏小。


均价方面,总体而言年份越早的房子均价越低,但2010年——2013年例外,具体查询结果如下,2011年在售房源数量及较少,而又夹杂一些主城区的豪宅;而2013年的低均价,则很大程度上是由于在售房源偏远城区的较多,本身房价较低。所以,小样本数据的局限性造成均价曲线上的严重失衡。


640.png

在售的2013年低房价Top10


640.png

在售的2011年高房价Top10


3.   不同标签均价统计了5个最有代表性的标签,并分别对包含该标签不包含该标签的样本进行了统计(图中的每对标签数据,左侧为包含该标签的结果,右侧则为不包含该标签),共得到10组数据。


640.png

对比来看,

  • 数量方面,包含这些优势的房源数量均为少数,无一例外的要少于相应不包含该标签的房源数量,尤其是在“繁华地段”和“南北通透”这两个属性上,差距尤为明显,印证了优质房源的稀缺性;
  • 均价方面,对比结果则略显戏剧性:在五个象征着优质房源的标签中,只有“近地铁”和“南北通透”意味着更高的均价,而其他则还看不出这样的特点,甚至跟大众印象还有很大出入。当然,再次不排除这是由小样本造成的。



目录
相关文章
|
11天前
|
数据采集 机器学习/深度学习 数据可视化
使用Jupyter Notebook进行数据分析:入门与实践
【6月更文挑战第5天】Jupyter Notebook是数据科学家青睐的交互式计算环境,用于创建包含代码、方程、可视化和文本的文档。本文介绍了其基本用法和安装配置,通过一个数据分析案例展示了如何使用Notebook进行数据加载、清洗、预处理、探索、可视化以及建模。Notebook支持多种语言,提供直观的交互体验,便于结果呈现和分享。它是高效数据分析的得力工具,初学者可通过本文案例开始探索。
|
14天前
|
数据采集 SQL 数据可视化
使用Pandas进行高效数据分析
【6月更文挑战第1天】Pandas是Python数据分析的核心库,基于NumPy,提供高效的数据结构如Series和DataFrame。它支持数据加载(CSV、Excel、SQL等)、清洗、预处理、探索、可视化及时间序列分析。通过实例展示了如何加载CSV文件,填充缺失值,进行数据统计和按部门平均薪资的可视化。Pandas与Matplotlib等库集成,简化了数据分析流程,对数据科学家和分析师极其重要。
|
4天前
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
【6月更文挑战第12天】在数字时代,Python因其强大的数据处理能力和易用性成为数据分析首选工具。结合Pandas(用于高效数据处理)和Matplotlib(用于数据可视化),能助你成为数据分析专家。Python处理数据预处理、分析和可视化,Pandas的DataFrame简化表格数据操作,Matplotlib则提供丰富图表展示数据。掌握这三个库,数据分析之路将更加畅通无阻。
|
6天前
|
SQL 缓存 算法
【源码解析】Pandas PandasObject类详解的学习与实践
【源码解析】Pandas PandasObject类详解的学习与实践
|
14天前
|
Python 数据挖掘 数据可视化
Python数据分析——Pandas与Jupyter Notebook
【6月更文挑战第1天】 本文探讨了如何使用Python的Pandas库和Jupyter Notebook进行数据分析。首先,介绍了安装和设置步骤,然后展示了如何使用Pandas的DataFrame进行数据加载、清洗和基本分析。接着,通过Jupyter Notebook的交互式环境,演示了数据分析和可视化,包括直方图的创建。文章还涉及数据清洗,如处理缺失值,并展示了如何进行高级数据分析,如数据分组和聚合。此外,还提供了将分析结果导出到文件的方法。通过销售数据的完整案例,详细说明了从加载数据到可视化和结果导出的全过程。最后,讨论了进一步的分析和可视化技巧,如销售额趋势、产品销售排名和区域分布,以及
34 2
|
18天前
|
数据采集 数据挖掘 数据处理
Python数据分析实战:使用Pandas处理Excel文件
Python数据分析实战:使用Pandas处理Excel文件
96 0
|
18天前
|
数据采集 SQL 数据可视化
使用Python和Pandas库进行数据分析的入门指南
使用Python和Pandas库进行数据分析的入门指南
77 0
|
18天前
|
数据采集 SQL 存储
使用Python和Pandas进行数据分析
使用Python和Pandas进行数据分析
24 0
|
1天前
|
Python
在Python的pandas库中,向DataFrame添加新列简单易行
【6月更文挑战第15天】在Python的pandas库中,向DataFrame添加新列简单易行。可通过直接赋值、使用Series或apply方法实现。例如,直接赋值可将列表或Series对象分配给新列;使用Series可基于现有列计算生成新列;apply方法则允许应用自定义函数到每一行或列来创建新列。
18 8
|
6天前
|
存储 数据挖掘 数据处理
【python源码解析】深入 Pandas BlockManager 的数据结构和初始化过程
【python源码解析】深入 Pandas BlockManager 的数据结构和初始化过程