【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

在这里插入图片描述


上一篇:Request模块实战01 ---简单爬取页面
下一篇:java编程常见类型题 --- IO文件操作、程序逻辑(百钱百鸡)、 集合应用

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年04月11日 22时04分25秒