北京,北京!用Python解析生活成本之高,讨生活之不易啊!

3天干完6个月的活,Claude把模型搬上AMD 一条挺刺激的消息:Anthropic 给投资人的材料里有一张幻灯片,写着它的 Claude Mythos Preview 只花了大约​,就摸清了怎么让另一个 Claude 模型在 AMD 的 MI355X 上跑起来。同一处还写了个对照数字:过去给一块新芯片做推理适配,通常要几十名工程师、​。3 天对 6 个月,这个比值太扎眼,当天中文互联网上就冒出一堆「英伟达的护城河塌了」的说法。我把能翻到的材料都翻了一遍,越看越觉得,塌掉的那一小块是真的,可塌的位置和很多人想的不一样。 阅读详情

1f4e36ed888f1813793eaccb452b7d9c.png

大家好,我是菜鸟哥!

最近发现了一个神奇的网站,可以查询世界上绝大多数城市的生活成本情况,包括衣食住行等等各个方面,可以让我人在家中坐,便知天下各地人民的生活状况。害,真是咸吃萝卜淡操心呐!

我们来看看这个网站,大致长这样

fe18a496018f15779d1f9fad2d01ea10.png

可以看到比如生活在北京,一个四口之家每个月的花费就要15W人民币,如果是一个单身汉的话,那么不算房租,也要4K多的开销,看来还真的是大北京,居不易啊!
当然网站上还有很多很好玩的数据,大家可以自行探索

https://www.numbeo.com/cost-of-living/in/Beijing

下面我们就来具体看看,生活在北京,衣食住行到底是怎么样的

最后我们还做成了一个大屏的效果

461e03a89928314244697f25c04d8b6d.png

数据抓取

其实抓取数据还是比较简单的,直接使用 Pandas 的 read_html 函数即可,这真的是一个超级棒的工具

import pandas as pd


pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
data = pd.read_html("https://www.numbeo.com/cost-of-living/in/Beijing", header=None)

我们拿到的数据如下

4c35a0c8313b908009fe6ae4336f063f.png

接下来就可以全方位的通过图表来展示大北京的生活啦

北京的衣食住行

首先是北京的购衣成本

6994af84887e830f4c05bc7c99d398cd.png

可以看出,男士的商务皮鞋是最贵的,而女士的裙子最高才不过400元,看来人们的消费观念有所改变,女人的钱不再那么好赚了

接下来是用餐成本

f80eb89596d808626328558eaa98c671.png

两人或三人,中等餐厅的人均消费水平是最高的,最高达到了350元,不过对于帝都来说,这好像也不算什么。
难道在吃这方面,北漂们都不特别讲究吗

再来看看果蔬的成本

c942a892ca0158b8674dac76c44f4993.png

每千克最高的是苹果和橙子,总体来看,也还好的感脚呢

最后我们看看租房成本

810cc6de21abfec97432d878d1b3f93d.png

可以说,租房这一项是最能体现帝都生活的数据了,市中心的单室套,最高达到了1.2W,而三室套也能达到2.5W的恐怖数字,看来在北京生活,其他方面都还好,这个住才是大问题呀

全国租房数据大屏

既然住是最为高成本的数据,那么我们来看看全国其他主要城市,租房的费用都是怎么样的呢
我们先获取数据

# coding = utf-8
"""
======================
@author:luobo
@time:2021/9/11:9:44
@email:
@File: main.py
======================
"""

import pandas as pd
import re
import time
import json

city_list = ['Beijing', 'Shanghai', 'Shenzhen', 'Guangzhou', 'Hangzhou', 'Suzhou', 'Nanjing', 'Fuzhou-China', 'Dalian',
             'Qingdao', 'Shenyang', 'Jinan-China', 'Changchun', 'Harbin-China', 'Zhengzhou-China', 'Lanzhou-China',
             'Chengdu', 'Chongqing', 'Wuhan', 'Tianjin']
city_url = "https://www.numbeo.com/cost-of-living/in/"

rent_dict = {}
rent_range_dict = {}
for city in city_list:
    city_url_final = city_url + city
    print(city_url_final)
    data = pd.read_html(city_url_final)
    one_bedroom = data[1].loc[54].tolist()[1]
    one_bedroom_range = data[1].loc[54].tolist()[2]
    data = re.findall(r'[0-9,.]+', one_bedroom)[0].replace(',', '')
    data_range_list = [i.replace(',', '') for i in re.findall(r'[0-9,.]+', one_bedroom_range)]
    data_range_list.append(data)
    rent_dict[city] = data
    rent_range_dict[city] = data_range_list
    time.sleep(10)

with open("rent_data1.json", 'w') as f:
    json_str = json.dumps(rent_dict, indent=4, ensure_ascii=False)
    f.write(json_str)


with open("rent_data_range.json", 'w') as f:
    json_str = json.dumps(rent_range_dict, indent=4, ensure_ascii=False)
    f.write(json_str)


if __name__ == '__main__':
    pass

运行代码,会生成两个json文件,分别是租房平均费用,已经最高最低费用

我们先编写获取柱状图的接口

@app.route("/get_chart_data")
def get_chart_data():
    with open("rent_data.json") as load_f:
        data = json.load(load_f)
    chart_info = {}
    chart1_data = get_data(["Beijing", "Shanghai", "Shenzhen", "Guangzhou", "Hangzhou"], data)
    chart2_data = get_data(["Suzhou", "Nanjing", "Fuzhou-China", "Dalian", "Qingdao"], data)
    chart3_data = get_data(["Shenyang", "Jinan-China", "Changchun", "Harbin-China", "Zhengzhou-China"], data)
    chart4_data = get_data(["Lanzhou-China", "Chengdu", "Chongqing", "Wuhan", "Tianjin"], data)
    chart_info['chart1'] = chart1_data
    chart_info['chart2'] = chart2_data
    chart_info['chart3'] = chart3_data
    chart_info['chart4'] = chart4_data
    return jsonify(chart_info)

这个接口会返回各个城市的平均租房费用,在前端我们使用 AJAX 来调用

$(function () {
    $.ajax({
        url: '/get_chart_data',
        type: 'get',
        dataType: 'json',
        success: function (res) {
            echarts_1(res['chart1']);
            echarts_2(res['chart2']);
            echarts_3(res['chart3']);
            echarts_4(res['chart4']);
        }
    });

    function echarts_1(data) {
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('echart1'));

在这个js文件中,我们通过 echarts 来填充页面上的不同id所对应的区域即可

下面再编写各城市直接的对比数据接口

@app.route("/get_pie_data")
def get_pie_data():
    with open("rent_data_range.json") as load_f:
        data = json.load(load_f)
    chart_info = {}
    data_list = []
    for i in city_list:
        data_list.append(data[i])
    chart_info["k"] = city_list
    chart_info["d"] = data_list
    return jsonify(chart_info)

对应的 echarts 代码部分如下

var chartDom = document.getElementById('map_1');
var myChart = echarts.init(chartDom);
var option;
var data = data["d"];
var cities = data['k'];
var barHeight = 50;
option = {
            legend: {
                show: true,
                data: ['价格范围', '均值']
            },
            grid: {
                top: 100
            },
            angleAxis: {
                type: 'category',
                data: cities
            },
            tooltip: {
                show: true,
                formatter: function (params) {
                    var id = params.dataIndex;
                    return cities[id] + '<br>最低:' + data[id][0] + '<br>最高:' + data[id][1] + '<br>平均:' + data[id][2];
                }
            },
...
option && myChart.setOption(option);

最后我们完成 flask 基本代码的编写,整个大屏就完成了

from flask import Flask, render_template, jsonify
import json


app = Flask(__name__)

city_list = ['Beijing', 'Shanghai', 'Shenzhen', 'Guangzhou', 'Hangzhou', 'Suzhou', 'Nanjing', 'Fuzhou-China', 'Dalian',
             'Qingdao', 'Shenyang', 'Jinan-China', 'Changchun', 'Harbin-China', 'Zhengzhou-China', 'Lanzhou-China',
             'Chengdu', 'Chongqing', 'Wuhan', 'Tianjin']


@app.route("/")
def index():
    return render_template("chengben.html")

...

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0')

后台回复“小助手”,找他获取,暗号:北京 获取完整代码!

好了,今天的分享就到这里了,喜欢就点个赞吧

推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案

点阅读原文,看200个Python案例!

如何处理动态语言(Python / JS)的“隐形”调用链? 本文揭示动态语言(Python/JS)中静态AST解析导致调用链“断链”的核心问题,提出通过运行时追踪补全图谱的解决方案。基于Code-Graph-RAG的cgr trace机制,分别利用pytest插件与V8 Profiler捕获真实调用路径,将动态边合并至静态图谱,并在权重体系中提升动态边优先级。实践表明,该方法可显著提升图谱覆盖率,实现“结构+行为”双视角理解代码,为MCP与Rerank系统提供可靠支持。 阅读详情

相关推荐

CANoe软件之离线报文回放与分析实战

本文详细介绍了如何使用CANoe软件进行离线报文回放与分析,帮助工程师将现场故障数据转化为可反复研究的实验室资源。通过实战步骤,指导如何搭建分析工程、加载DBC文件解码信号,并利用Trace和Graphics窗口进行深度数据筛选与图形化分析,从而高效定位汽车电子故障,是提升诊断效率的关键技能。

weixin_29227585的博客 530

经纬度地址转换的方法集合(Python描述)

Python 2.7 IDE Pycharm 5.0.3 Geopy 1.11前言这只是我想做的一部分,写一块太大了,单独记录 目的获取2015年GDP TOP100城市并获取城市对应经纬度,存入txt后续操作 获取GDP TOP100城市查询网址如下http://www.redsh.com/a/20160126/171501.shtml 2015中国100大城市GDP排行榜TOP100出炉!

MrLevo520的博客 1万+

采购订单定价策略 超详细

‘需求’字段里填写的是一个例程编号(例程是一段判断程序),如果我们在需求中维护了例程编号,那只有这个例程条件被满足时,这个条件表才会被系统自动读取。一部分的条件表只有在凭证项目满足一定的条件时才会被读取。 ‘排斥的’字段如果别勾中的话,那表明如果这个条件表被系统成功读取到数据后,系统将停止这个存取顺序的执行,否则,系统将继续执行下去。 注意:a、如果我们给某个条件类型设定了有效期的话,那我们必须给这个条件类型分配一个存取顺序。 b、不能给一个抬头条件分配存取顺序。 是...

竹大的博客 1万+

python 实现省全称和省的简称互相转换

省的简称转换全称: def short_to_province(short): if short == "京": return "北京市" elif short == "津": return "天津市" elif short == "渝": return "重庆市" elif short == "

yang9315的博客 5213

手把手教你用HI3516CV610搭建智能安防摄像头(附完整开发资料)

本文详细介绍了基于海思HI3516CV610 SOC搭建智能安防摄像头的完整开发流程,包括硬件选型、系统架构设计、开发环境搭建、智能分析功能开发及系统调优。通过实战案例,展示了如何利用内置NPU实现人形检测和异常行为分析,并提供了量产测试方案,帮助开发者快速完成智能摄像头项目。

backprop5master的博客 545

A Mathematical Framework for Transformer Circuits—(一)

transformer数学理解理论

qq_42208244的博客 2665

计划预算(PV)、实际完成工作预算(EV)、实际成本(AC)

1.计划预算(PV)、实际完成工作预算(EV)、实际成本(AC) PV、AC、EV以前的名字不是这样的,以前分别叫:BCWS、ACWP、BCWP。  BCWS:Budgeted Cost for Work Scheduled,即现在的PV。  ACWP:Actual Cost for Work Performed,即现在的AC。  BCWP:Budgeted Cost for Work P

pyy的博客 4844

深入解析Unity3D中PostLateUpdate突然占用大量时间的原因

在Unity3D的生命周期中,是一个在LateUpdate之后被调用的方法。它通常用于处理一些需要在所有更新(包括物理更新和动画更新)之后进行的逻辑。由于它在游戏循环的后期阶段被调用,因此它通常用于处理与渲染直接相关的任务,如相机调整、UI更新等。突然占用大量时间的问题可能由多种原因引起,包括复杂的逻辑处理、频繁的资源加载、不恰当的渲染优化、插件或第三方库的副作用以及内存泄漏或垃圾回收等。为了解决这个问题,开发者需要仔细审查和优化中的代码,同时利用Unity提供的工具来监控和分析游戏性能。

Yori_22的博客 981

多项式回归分析之预测成本和利润

往期回顾: Python中有监督学习之回归分析(一) 线性回归预测糖尿病 在一元回归分析中,如果变量 y 与自变量 x的关系为非线性的,但又找不到适当的函数曲线来拟合,则可以采用一元多项式回归。 ## 1. PolynomialFeatures 多项式生成函数: <font face="Time New Roman" color=caf size=4> **sklearn.prep...

zhf的博客 2271

SpringBoot实战教程-springboot概论

Spring Boot 是一个快速开发框架,能够快速的整合第三方框架,简化XML配置,全部采用注解形式,以及自动配置。内置web容器,帮助开发者能够实现快速开发,简化了应用系统的初始搭建以及开发过程。

鸟哥哥的专栏 4158

【数据集实例】CMIP6气候模式数据下载-以河东地区为例

以河东地区为例,介绍CMIP6数据下载及处理

WW、forever的博客 4951

万字案例 | 用Python建立客户流失预测模型(含源数据+代码)

来源:数据分析不是个事儿作者:启方客户流失是所有与消费者挂钩行业都会关注的点。因为发展一个新客户是需要一定成本的,一旦客户流失,成本浪费不说,挽回一个客户的成本更大。今天分享一个用户流失...

SeizeeveryDay的博客 7578

1.为什么要学习SIMULINK

用户也可以自定义和创建自己的模块,利用这些模块,用户可以创建层次化的系统模型,可以自上而下或自下而上地阅读模型,也就是说,用户可以查看最顶层的系统,然后通过双击模块进入下层的子系统查看模型,这不仅方便了工程人员的设计,而且可以使自己的模型方块图功能更清晰,结构更合理。此外,利用示波器模块或其他的显示模块,用户可以在仿真运行的同时观察仿真结果,而且还可以在仿真运行期间改变仿真参数,并同时观察改变后的仿真结果,最后的结果数据也可以输出到MATLAB工作区进行后续处理,或利用命令在图形窗口中绘制仿真曲线。

FPGA/MATLAB学习教程/源码/项目合作开发 1547

北京,北京,用Python解析生活成本之高,讨生活之不易啊

最近发现了一个神奇的网站,可以查询世界上绝大多数城市的生活成本情况,包括衣食住行等等各个方面,可以让我人在家中坐,便知天下各地人民的生活状况。害,真是咸吃萝卜淡操心呐! 我们来看看这个网站,大致长这样 可以看到比如生活在北京,一个四口之家每个月的花费就要15W人民币,如果是一个单身汉的话,那么不算房租,也要4K多的开销,看来还真的是大北京,居不易啊! 当然网站上还有很多很好玩的数据,大家可以自行探索 https://www.numbeo.com/cost-of-living/in/Beijing 下面

Python_cocola的博客 694

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

偶然发现的Python自学宝藏地带!

大家好最近发现一个自学python的好地方,这里全部都是原创文章,涉及爬虫、可视化、Python Web、数据分析、自动化办公、机器学习,应有尽有;而且每篇文章都有源码分享,大家一起来看看...

weixin_43373042的博客 381

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

本地化部署 DeepSeek,构建单细胞与空间转录组 AI 分析平台

本地化部署 DeepSeek,构建单细胞与空间转录组 AI 分析平台

weixin_53637133的博客 181

【第 009 讲】全面掌握 Python 注释:注释的定义与作用 | 单行注释 | 三引号与多行注释 | 注释使用的最佳实践

本文系统讲解 Python 注释的完整知识体系:从注释的定义与作用讲起,梳理单行注释的书写位置、临时屏蔽用法与 PEP 8 排版规范,剖析注释被忽略的底层机制;进而说明三引号字符串的本质与嵌套问题;最后给出注释使用的三条实践原则,帮助读者写好可读性高的注释。

大模型全栈工程师 · Thanks_ks 575

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 432

从一段视频到可漫游的 4D 有声场景:思路拆解与最小复现手记

只需一段手机视频,你就能生成可"走进去"的 4D 有声场景:转头时狗叫声方向随之变化,走近时声音更清晰。本文拆解 Video-to-4DAVScene 的核心思路,手把手带你用几十行 Python 搭出最小管线,把视频中的运动物体变成带空间位置的声源,并附上三个真实踩坑的排障经验,代码可直接跑。🎧

helloagent的博客 243

【每天一个 Python 小案例30】Python 基础知识综合小项目:我的工具盒

作为系列收官,本篇把前 29 篇的知识点合成一个能直接用的命令行工具"我的工具盒":计算器(用 ast 解析表达式,不碰 eval)、单位换算与温度转换(一张换算表 + 特例分支)、记账与分类统计(Decimal + JSON 持久化)、以及用"字典当命令表"把菜单和业务逻辑解耦的主循环。文中对比了 eval 的安全隐患与 ast 白名单的做法,解释了 lambda 闭包在字典里的写法与晚绑定陷阱,并在最后给出整个系列的知识地图,把变量、数据结构、控制流、函数、类、异常、文件、标准库八块内容对应到具体篇目。

xinjiyaya的博客 427

yolo 和 deft 算法的区别

你应该是打错了:是,不是 defrat;

曾大强博客 258

两张表合并之后,行数悄悄多了一倍

pandas merge 行数异常膨胀源于右表键不唯一,导致数据静默复制。实测显示,未聚合的右表(756行)与左表合并后行数增至504行,合计膨胀3.5倍,但无报错。validate 参数仅在检查键唯一性时有效,one_to_one 和 many_to_one 可拦截问题,但需结合 duplicated() 前置检查。正确做法为先按键聚合右表,再合并,避免重复。建议合并前后核对行数、合计,并使用 indicator=True 排查匹配情况,确保数据一致性。

patrickstar231的博客 240

蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级 备考:莫队算法离线区间查询详解

备赛进行时:第十八届蓝桥杯软件赛报名已于 2026-10-08 10:00 开启、12-18 14:00 截止,省赛定在 2027-04-10(C/C++·Python 程序设计 9:00–13:00);中国电子学会 2026 年 12 月软件编程(C/C++ 一级至十级、Python 一级至六级)考级报名 9/23–12/2 16:00、统考 12-12;全国青少年信息素养大赛 2026—2027 赛季算法应用主题赛也已进入复盘练兵窗口。

IT_Scratch的博客 175

智慧农业实战:育秧车间秧盘计数与苗情分级的Python实现

首先,建立统一的数据结构,保存每盘秧苗的编号、批次、覆盖度、叶色得分和播种天数。A = "壮苗"B = "合格苗"C = "弱苗"@dataclassdays: int。

荆棘鸟智能的博客 132

我用 200 行代码写了个“代码屎山检测器“,扫完公司的老项目后我沉默了

这个工具不能帮你把屎山铲平,但至少能让你知道自己面对的是多大的山,也能在代码评审时用数据说话——“这个 PR 把圈复杂度从 12 推到了 18,能不能拆一下?毕竟,不能量化的东西,就没法改进。

xixiaoyunya的博客 253

Java Arrays.asList 常见坑详解|UnsupportedOperationException、数组联动、基本类型 bug

解析 Arrays.asList 常见开发陷阱,演示 UnsupportedOperationException、底层数组引用共享、基本类型数组问题,区分 Arrays 内部 ArrayList 与 java.util.ArrayList,给出数组转 List 的各种场景正确代码。

weixin_42617033的博客 503
上一篇: GitHub官方的2021年度报告,原来全球程序员好像都在卷!
下一篇: 公司规定所有接口都用 POST请求,这是为什么?
菜鸟学Python
博客等级 码龄9年 8086粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值