Python分析中国大陆各直辖市及各省省会的平均工资与平均房价

Python分析中国大陆各直辖市及各省省会的平均工资与平均房价 研究目的 近期网络上关于“躺平”的争论很多,但可以看出支持“躺平”的多是以90后为主的年轻人

本文包含相关资料包-----> 点击直达获取<-------

Python分析中国大陆各直辖市及各省省会的平均工资与平均房价

研究目的

近期网络上关于“躺平”的争论很多,但可以看出支持“躺平”的多是以90后为主的年轻人,反对“躺平”的是中老年人,而让年轻人“躺平”很大的一个原因便是高昂的房价。因此我想爬取相对客观的数据,看看各直辖市和各省省会的平均工资与房价是多少,分析房价是不是真的高到买不起,高到让年轻人躺平的地步。

爬取数据的来源

爬取平均工资的网站:薪酬网

爬取平均房价的网站:安居客

很诡异的一件事是在安居客上查询不到深圳的平均房价,但深圳既不是直辖市也不是省会城市故我不再深究

爬取数据中遇到的问题

在大数据越来越重要,爬虫技术越来越先进的今天,反爬虫的手段也愈加高明。在爬取薪酬网的数据时,即使伪装了头部信息、设置了休眠时间依然会被识别为爬虫;而在爬取安居客数据时,它不仅会设置验证信息,网页还会动态变化。比如某一时刻,福州网页的网址为https://fuzhou.anjuke.com/market/而过了某个时间段后其网址就变为https://fz.anjuke.com/market/,我只好先把这31个城市的平均工资和平均房价的网页先爬取下来再爬取相关的数据。

爬取相关数据

爬取平均工资:

Average_wage_get.py,输出data1

代码:

```python text = get_text_from_saved_html(city_lst[i]) # 从保存的html里获取网页内容 soup = BeautifulSoup(text, 'html.parser') city_name = '' # 创建一个空字符串用来存放城市字符串 wage_str = '' # 创建一个空字符串用来存放房价字符串

sf1 = soup.find(class_="card-header") # 查找城市名所在位置 st1 = sf1.text.replace(" ", "").strip() # 去掉空格、换行符等 flag = 0 while not st1[flag].isdigit(): city_name += st1[flag] flag += 1 city_name.replace('市', '') city.append(city_name)

sf2 = soup.find(class_="text-center justify-content-between") # 查找平均工资所在位置 st2 = sf2.text.replace(" ", "").strip() # 去掉空格、换行符等 flag = 0 while st2[flag] != "C": wage_str += st2[flag] flag += 1 wage_num = eval(wage_str) # 将字符串转换为数字 wage.append(wage_num) ```

爬取平均房价:

Average_housing_price_get.py,输出data2

代码:

```python city = [] # 创建一个列表用来存放城市 housing_price = [] # 创建一个列表用来存放房价

for i in range(len(city_lst)): # 遍历传入的城市列表,查找保存的网页中城市名及对应房价 text = get_text_from_saved_html(city_lst[i]) # 从保存的html里获取网页内容

soup = BeautifulSoup(text, 'html.parser')
sf = soup.find(class_="highLight")  # 根据浏览器检查网页内容确定了所要寻找的信息所在位置
city_name = ''  # 创建一个空字符串用来存放城市字符串
housing_price_str = ''  # 创建一个空字符串用来存放房价字符串

st = sf.text.replace(" ", "").strip()   # 去除空格、换行符等
flag = 0   # 标记位置
while not st[flag].isdigit():  # 获取城市字符串
    city_name += st[flag]
    flag += 1
city_name.replace('市', '')
city.append(city_name)

for j in range(-9, -4):  # 获取房价字符串
    housing_price_str += st[j]
housing_price_num = eval(housing_price_str)  # 将房价由字符串型转换为数字型,为后续计算做准备
housing_price.append(housing_price_num)

```

数据处理

从Average_wage_get.py导入data1,从Average_housing_price_get.py,输出data1,在data_handle.py里用pandas输出类型为DataFrame的data保存到.csv和.xlsx文件

代码:

```python city_lst = [] # 省会直辖市列表 average_wage_lst = [] # 平均工资列表 average_housing_price_lst = [] # 平均房价列表 time_lst = [] # 不吃不喝买房所需时间 data = dict() # 创建一个数据字典用来汇总所有的数据

for i in data2.keys(): # 从数据2获取键放入城市列表中 city_lst.append(i) for i in data1.values(): # 从数据1获取值放入平均工资列表中 average_wage_lst.append(i) for i in data2.values(): # 从数据2获取值放入平均房价列表中 average_housing_price_lst.append(i) for i in range(len(city_lst)): # 计算每个城市在不吃不喝(即工资完全用来买房)的情况下用平均工资买房要花多长时间 months = round(average_housing_price_lst[i]*100/average_wage_lst[i]) + 1 # 因为房贷少交一个月都不行所以四舍五入+1 years = round(months/12) + 1 # 同上 time_lst.append(years)

data["city"] = city_lst # 城市字典 data["wage"] = average_wage_lst # 平均工资字典 data["housing_price"] = average_housing_price_lst # 平均房价字典 data["time"] = time_lst # 买房花费时间字典

df = pd.DataFrame(data) # 创建DataFrame,输出为.csv和.xlsx文件 df.to_csv('大陆各省会直辖市平均工资及平均房价.csv', encoding="utf-8", index=False) df.to_excel('大陆各省会直辖市平均工资及平均房价.xlsx') ```

数据展示

在Data_Show.py中读取大陆各省会直辖市平均工资及平均房价.xlsx,用matplotlib.pyplot模块作图。

参考文献

  • 区域房产信息统计系统设计与实现(大连理工大学·张玉梅)
  • 基于J2EE的房产交易平台的研究与实现(复旦大学·叶頲)
  • 房地产管理信息系统的设计与实现(北京邮电大学·张乐)
  • 基于SSH框架的工资管理系统的设计与实现(电子科技大学·张祎荻)
  • 平潭建设局人力资源管理系统的设计与实现(电子科技大学·高陈晟)
  • 房地产销售信息管理系统的设计与实现(西南交通大学·文燕)
  • 基于B/S的公司工资信息管理系统设计与实现(大连理工大学·吴万强)
  • 基于.NET的住房货币化管理信息系统的设计与实现(吉林大学·李剑锋)
  • 基于SSH 的人事工资管理系统的研究与开发(中国海洋大学·李萍)
  • 网络流量统计分析系统(吉林大学·石景龙)
  • 基于web的房屋租赁系统的设计与实现(华中科技大学·姜子旋)
  • 基于web的房屋租赁系统的设计与实现(华中科技大学·姜子旋)
  • 昆钢房地产公司成本管理系统的设计与实现(山东大学·许向玉泉)
  • 哈尔滨市房产权属登记业务信息管理系统的设计与实现(电子科技大学·李洪强)
  • 基于web的房屋租赁系统的设计与实现(华中科技大学·姜子旋)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码驿站 ,原文地址:https://bishedaima.com/yuanma/36011.html

相关推荐

  • 基于SpringBoot框架的房屋租赁系统

    这是一套采用🔥🔥SpringBoot框架构建的房屋租赁系统源代码,主要编程语言为Java,并结合了Vue技术进行开发,开发工具包括Idea或Eclipse,此房屋租赁系统适用于作为毕业设计或课程设计任务
    2024年05月23日
    7 1 2
  • 在线教育系统

    这是一个🔥🔥基于SpringBoot框架的在线教育系统设计与实现🔥🔥的项目源码,开发语言Java,框架使用的SpringBoot+vue技术,开发环境Idea/Eclipse
    2024年05月23日
    2 1 1
  • 基于Python实现的函数绘图语言解释器

    基于Python实现的函数绘图语言解释器 一,实验目的 通过实验加深对编译器构造原理和方法的理解,巩固所学知识, 会用正规式设计简单语言的词法 会用产生式设计简单语言的语法 会用递归下降子程序编写语言的解释器 二
    2024年05月14日
    3 1 1
  • 基于Vue+SpringCloud博客的设计与实现

    基于Vue+SpringCloud博客的设计与实现 一,摘 要 博客是用来分享自己的心情和动态拉近人与人之间的距离,它改变了人们的在网上的交流方式
    2024年05月14日
    14 1 3
  • 求解多极小函数之Python

    求解多极小函数 求解多极值函数问题中,我们需要求出函数的最值,我们以函数 f(x0,x1) = x1sin(x0) x0 cos(x1) 为例,求它在 x0,x1 ∈ [10
    2024年05月14日
    2 1 1
  • 汉字字频统计 之Python

    汉字字频统计 实验内容 针对不同语料统计汉字的字频,并进行比较, 实验要求和目的 给出前 100 个汉字高频字的频率统计结果; 分别给出前 1
    2024年05月14日
    2 1 2
  • 基于Java+Jsp+Servlet+Mysql的火车票订票售票系统

    在当今数字化时代,火车站的客流量与日俱增,为了提高运营效率和服务质量,建立一套高效的火车票订票售票系统势在必行,基于Java+Jsp+Servlet+Mysql的火车票订票售票系统应运而生
    2024年05月07日
    8 1 3
  • 基于SpringBoot的简易秒杀系统

    【秒杀系统】零基础上手秒杀系统(一):防止超卖 【秒杀系统】零基础上手秒杀系统(二):令牌桶限流 + 再谈超卖 【秒杀系统】零基础上手秒杀系统(三):抢购接口隐藏 + 单用户限制频率 【秒杀系统】零基础上手秒杀系统(四):缓存与数据库双写问题的争议 【秒杀系统】零基础上手秒杀系统番外篇:阿里开源 MySQL 中间件 Canal 快速入门 【秒杀系统】零基础上手秒杀系统(五):如何优雅的实现订单异步处理 【秒杀系统】从零打造秒杀系统(一):防止超卖 前言 大家好
    2024年05月14日
    6 1 1
  • 基于JSP+Servlet+Sqlserver的影视论坛交流网站毕设(源码+论文+任务书+中期报告+答辩PPT)

    这是一个🔥🔥基于JSP的影视论坛交流网站毕设🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 影视技术论坛开发技术栈为JSP项目,可以作为毕业设计课程设计作业使用JSP+Servlet+Sqlserver实现一个电影创作者交流的论坛网站
    2024年05月23日
    45 1 10
  • 基于Java+SpringBoot的博客系统

    这是一个🔥🔥基于SpringBoot的博客系统🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 Java博客开发技术栈为SpringBoot项目
    2024年05月23日
    2 1 1

发表回复

登录后才能评论