
【Python+Flask+Echarts】可视化练习题 --- 航空火箭信息分析处理
发布日期:2021-05-07 02:47:56
浏览次数:17
分类:精选文章
本文共 3494 字,大约阅读时间需要 11 分钟。
【Python+Flask+Echarts】可视化练习题 — 航空火箭信息处理
本篇的数据来源
![]()
该数据集源含一张张数据表,主要包含世界各地的火箭发射信息,通过一些简单的数据清洗处理绘制简单的图像 ☆ミ(o*・ω・)ノ
目录:
一、数据清洗
原始数据:
1、数据提取
# 提取有效列data = data.iloc[:,1:]# 重命名 ['公司','发射地点','发射基准和时间','火箭名','火箭状态','任务成本','任务状态']data.columns = ['公司','发射地点','发射基准和时间','火箭名','火箭状态','任务成本','任务状态']# 提取相关的发射国家信息country_split = [x.split(', ') for x in data['发射地点']]# 创建空数组存储国家,自定义函数提取国家country = []def country_select(list): for i in range(len(country_split)): country.append(list[i][-1]) return country# 调用方法获取国家country_select(country_split)# 新加一列国家data['国家'] = country
2、数据格式处理、类型转换
#处理空格、符号data['任务成本'] = data['任务成本'].str.replace(' ', '')data['任务成本'] = data['任务成本'].str.replace(',', '')# 转换数据类型,便于后续各公司成本累计求和data['任务成本'] = data['任务成本'].astype(float)# 转换时间序列data['发射基准和时间'] = pd.to_datetime(data['发射基准和时间'])
3、填补法处理空值:
# 处理空值 --- 填充0data_nan1 = data.isnull().sum()data['任务成本'] = data['任务成本'].fillna(0)data_nan2 = data.isnull().sum()
4、简单去重:
# 查看数据集整体信息print(data.info())# 获取重复记录并删除duplicate = data[data.duplicated()]sum1 = data.shapedata.drop_duplicates(inplace=True)sum2 = data.shape#data.to_csv("data/Space/Space_data_prepared.csv",index=True)
注意:在空值填补处理的时候需要先进行数据类型的转换,也就是第二步要在第三步的前面完成,否则在填值的时候数据类型不匹配无法填充,我在做的时候就是前两步颠倒了位置,导致在控制台查看data_nan1、data_nan2的时候显示空值已经被填,但是最终生成文件中nan值并没有被替换。
简单处理后的表格:
以上步骤有关解析参见本人博客:
任务一:绘制各公司总成本不为0的横向条形图
data_info = data.dtypes# 1.提取有效列data_use = data[['公司','任务成本']]sum = data_use.groupby('公司').sum().sort_values(by='任务成本',ascending=True).reset_index()sum_final = sum[sum['任务成本']!=0]list = sum_final.values.tolist()app = Flask(__name__)@app.route('/')def index(): sheets_list = list return render_template("太空_总成本.html",sheets = sheets_list)if __name__ == '__main__': app.run(debug=True)
Title
任务二:绘制每年\每月的发射数量
# -*- coding: utf-8# @Time : 2020/12/7 16:11# @Author : ZYX# @File : 太空任务_绘制每年每月火箭发射数量柱状图.py# @software: PyCharmimport pandas as pdfrom flask import Flask,render_template# 数据集读取df = pd.read_csv("data/Space/Space_data_prepared.csv",index_col=0,encoding='utf-8')# 提取相关信息# 需要再次转换数据类型为时间格式print(df['发射基准和时间'].dtype)df['发射基准和时间'] = pd.to_datetime(df['发射基准和时间'])print(df['发射基准和时间'].dtype)# 提取时间 --- 年df['Year'] = df['发射基准和时间'].apply(lambda datetime:datetime.year)# 提取时间 --- 月df['Month'] = df['发射基准和时间'].apply(lambda datetime:datetime.month)# 提取data_use = df[['Year','Month']]year_count = data_use.groupby('Year').count().reset_index()month_count = data_use.groupby(['Month']).agg(count=('Month','count')).reset_index()list_year = year_count.values.tolist()list_month = month_count.values.tolist()list = [list_month,list_year]app = Flask(__name__)@app.route('/')def index(): sheet_list = list return render_template("太空_发射数量.html",sheets=sheet_list)if __name__ == '__main__': app.run(debug=True)
Title
任务三:绘制任务状态统计图 — 统计各国家火箭发射成功状态的排名图
# -*- coding: utf-8# @Time : 2020/12/8 9:02# @Author : ZYX# @File : 太空任务_任务状态统计图.py# @software: PyCharmimport pandas as pdfrom flask import Flask,render_templatedata = pd.read_csv('data/Space/Space_data_prepared.csv',index_col=0)# 提取任务状态为Success的记录data_use = data[data['任务状态']=='Success']# 提取国家、任务状态相关列data_final = data_use[['国家','任务状态']].groupby('国家').agg(count=('任务状态','count')).sort_values('count').reset_index()list = data_final.values.tolist()# 可视化app = Flask(__name__)@app.route('/')def index(): sheets_list = list return render_template("太空_任务状态.html",sheets = sheets_list)if __name__ == '__main__': app.run(debug=True)
Title
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年04月11日 22时04分25秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
简单说说TCP三次握手、四次挥手机制
2019-03-06
.net Core 使用IHttpClientFactory请求
2019-03-06
多线程之旅(准备阶段)
2019-03-06
Python 之网络式编程
2019-03-06
MySql5.5安装步骤及MySql_Front视图配置
2019-03-06
springmvc Controller详解
2019-03-06
mybatis #{}和${}区别
2019-03-06
Java Objects工具类重点方法使用
2019-03-06
Java内存模型(JMM)
2019-03-06
AQS相关
2019-03-06
abp(net core)+easyui+efcore实现仓储管理系统——多语言(十)
2019-03-06
WCF学习之旅—第三个示例之一(二十七)
2019-03-06
java ThreadPoolExecutor初探
2019-03-06
Markdown进阶
2019-03-06
快速指数算法
2019-03-06