目录
一、实战场景
flask + Pandas + echarts 使用饼状图等将二手房数据进行分析+可视化
二、知识点
python 基础语法
python 文件读写
pandas 数据处理
flask web 框架
echarts 图表
bootstrap
jinja 模版
三、菜鸟实战
初始化 Flask 框架,设置路由
'''
Description: 分页读取并显示 csv 文件数据
'''
from math import ceil
import csv
import json
from flask import Flask, render_template, request, redirect, jsonify
from spiders.file_manager import FileManager
# 初始化框架
web = Flask(__name__)
@web.route('/')
def index():
# 首页
return redirect('/list')
@web.route('/table/<int:page_num>')
def table(page_num):
# 分页读取并显示 csv 文件数据
file_manager = FileManager()
file = file_manager.get_data_file_path("tao365_detail.csv")
# 若不指定limits默认为 5
limits = request.args.get('limits', 5, type=int)
def show_csv(reader, page=page_num, limits=limits):
# 内部函数,根据limits和所在页数生成数据
df = []
for row in reader:
if page_num * limits >= (reader.line_num - 1) > (page_num - 1) * limits:
df.append(row)
return df
with open(file, 'r+', encoding='utf-8') as f:
# 计算页面数
row_length = len(f.readlines()) - 1
pages = int(ceil(row_length / limits))
with open(file, 'r+', encoding='utf-8') as f:
# 计算数据
reader = csv.reader(f)
next(reader)
df = show_csv(reader, page_num, limits)
# 加载模版和模版数据
return render_template('table.html', df=df, pages=pages, page_num=page_num, limits=limits)
@web.route('/table_detail')
def table_detail():
# 二手房详情
row = request.args.get('row').split(',')
return render_template('table_detail.html', row=row)
@web.route('/list')
def list_house():
# 二手房列表
return render_template('list.html')
@web.route('/chart1')
def chart1():
# 柱状图
return render_template('chart1.html')
@web.route('/chart2')
def chart2():
# 横向柱状图
return render_template('chart2.html')
@web.route('/chartBi

本文介绍了使用Python的Flask框架结合pandas进行数据处理,以及利用echarts进行数据可视化的实战项目。包括分页显示CSV文件中的二手房数据,分析各行政区房屋数量、房源朝向分布和单价Top10,采用柱状图和饼状图进行展示。
最低0.47元/天 解锁文章
1764





