空难数据分析例子
来源:互联网 发布:自动发布信息软件 编辑:程序博客网 时间:2024/04/28 23:25
数据集:Kaggle上的1908年收集的公开数据集
项目任务:
- 每年空难数分析
- 机上乘客数量
- 生还数、遇难数
- 哪些航空公司空难数最多?
- 哪些机型空难数最多?
# -*-coding: utf-8 -*-import pandas as pdimport seaborn as snsimport matplotlib.pyplot as pltfrom bokeh.io import output_notebook, output_file, showfrom bokeh.charts import Bar,TimeSeriesfrom bokeh.layouts import columnfrom math import pi
- 查看数据信息data_path = './dataset/Airplane_Crashes_and_Fatalities_Since_1908.csv'df_data = pd.read_csv(data_path)
print u'数据集基本信息:'print df_data.info()
数据集基本信息: RangeIndex: 5268 entries, 0 to 5267 Data columns (total 13 columns): Date 5268 non-null object Time 3049 non-null object Location 5248 non-null object Operator 5250 non-null object Flight # 1069 non-null object Route 3562 non-null object Type 5241 non-null object Registration 4933 non-null object cn/In 4040 non-null object Aboard 5246 non-null float64 Fatalities 5256 non-null float64 Ground 5246 non-null float64 Summary 4878 non-null object dtypes: float64(3), object(10) memory usage: 535.1+ KB Noneprint u'数据集有%i行,%i列' %(df_data.shape[0], df_data.shape[1])
数据集有5268行,13列print u'数据预览:'df_data.head()
数据预览:- 处理缺失数据
# def process_missing_data(df_data):# """# 处理缺失数据# """# if df_data.isnull().values.any():# # 存在缺失数据# print '存在缺失数据!'# df_data = df_data.fillna(0.) # 填充nan# # df_data = df_data.dropna() # 过滤nan# return df_data.reset_index()
- 数据转换df_data['Date'] = pd.to_datetime(df_data['Date'])# df_data['Date']
df_data['Year'] = df_data['Date'].map(lambda x: x.year)df_data.head()
- 数据分析与可视化——空难数vs年份
a) seaborn
plt.figure(figsize=(15.0,10.0))sns.countplot(x='Year', data=df_data)
<matplotlib.axes._subplots.AxesSubplot at 0x1158ce610>
plt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=False
plt.title(u'空难次数VS年份')plt.xlabel(u'年份')plt.ylabel(u'空难次数')plt.xticks(rotation=90)plt.show()
b) bokeh
p = Bar(df_data,'Year',title=u'空难次数 VS 年份',plot_width=1000,legend=False,xlabel=u'年份',ylabel=u'空难次数')p.xaxis.major_label_orientation = pi/2output_notebook()show(p)
- 数据分析与可视化——乘客数量vs遇难数vs年份
grouped_year_sum_data = df_data.groupby('Year',as_index=False).sum()grouped_year_sum_data.head()
a) seaborn
grouped_year_sum_data = df_data.groupby('Year',as_index=False).sum()grouped_year_sum_data.head()
plt.title(u'乘客数量vs遇难数vs年份')plt.xlabel(u'年份')plt.ylabel(u'乘客数量vs遇难数')plt.xticks(rotation=90)plt.show()
b) bokeh
tsline = TimeSeries(data=grouped_year_sum_data, x='Year',y=['Aboard','Fatalities'],color=['Aboard', 'Fatalities'], dash=['Aboard', 'Fatalities'],title=u'乘客数量vs遇难数vs年份',xlabel=u'年份',ylabel=u'乘客数vs遇难数', legend=True)tspoint = TimeSeries(data=grouped_year_sum_data,x='Year',y=['Aboard','Fatalities'],color=['Aboard', 'Fatalities'], dash=['Aboard', 'Fatalities'],builder_type='point',title=u'乘客数量vs遇难数vs年份',xlabel=u'年份', ylabel=u'乘客数vs遇难数',legend=True)output_notebook()show(column(tsline,tspoint))
- top n 分析
grouped_data = df_data.groupby(by='Type',as_index=False)['Date'].count()grouped_data.rename(columns={'Date':'Count'},inplace=True)top_n = 10top_n_grouped_data = grouped_data.sort_values('Count',ascending=False).iloc[:top_n, :]top_n_grouped_data
- 可视化结果
plt.figure(figsize=(15.0,10.0))sns.barplot(x='Count',y='Type',data=top_n_grouped_data)
plt.title('Count vs Type',fontsize=20)plt.xlabel('Type')plt.ylabel('Count')plt.show()
0 0
- 空难数据分析例子
- 大数据日志分析小例子
- python数据质量分析小例子
- python数据分析numpy简单例子
- python数据分析scipy简单例子
- 有感乌伯林根空难和波兰总统空难
- 俄罗斯又有空难
- 空难调查者
- Mahout in action分析维基百科数据例子(一)
- Mahout in action分析维基百科数据例子(二)
- R语言小例子---简易的数据分析和画图
- 用python实现Kaggle的Titanic数据分析例子
- scrapy + pandas 进行数据分析的一个例子
- Python数据分析|第2章 引言(例子)
- 关于俄罗斯7。9空难
- 关于俄罗斯7。9空难
- 乌伯林根空难 致命的交汇点
- R金融数据分析之quantmod包抓取股票行情数据小例子
- 格式塔(Gestalt)原理
- 关于时间方向性
- ZigBee EmberZNet EFR32MG的能源管理机制
- 多任务网段扫描
- 2016小码哥5期安卓基础大神班
- 空难数据分析例子
- XMind中有关画布的“属性”设置
- 对C语言的认识
- MTK 唤醒时间分析
- startsWith
- 欢迎使用CSDN-markdown编辑器
- 解决浮动问题的几种方法
- Spring task定时任务
- 七步配置phonegap+cordova+ionic开发环境