共享单车骑行时间
学习目标:
熟悉数据分析的基本流程
初步掌握Numpy中数组与向量化操作
使用Matplotlib进行简单的数据可视化
一、数据分析的流程
1.明确任务:明确目的,确定思路。
2.数据收集:网络爬虫,公开数据集,客户数据。
3数据处理:数据清洗,数据规整。
4数据分析:数据统计,探索性数据分析(EDA),数据建模。
5结果展示:数据可视化,报表生成,结果保存。
二、Numpy
高性能科学计算和数据分析的基础包,提供多维数组对象(ndarry)
具有矢量/向量化运算能力,快速、节省空间
import numpy as np
使用版本>=1.13.3
三、Matplotlib
用于创建出版质量图表的绘图工具库
目的是为Python创建一个Matlab式的绘图接口
import matplotlib.pyplot as plt
使用版本>=2.0.2
四、共享单车季度平均骑行时间
import numpy as np import matplotlib.pyplot as plt import os data_path = 'D:/BaiduNetdiskDownload/MOBIKE_CUP/' data_filenames =['2017_01.csv','2017_02.csv','2017_03.csv','2017_04.csv'] #数据收集 def collect_data(): data_arr_list = [] for data_filename in data_filenames: data_file = os.path.join(data_path,data_filename) data_arr = np.loadtxt(data_file,delimiter=',',dtype='str',skiprows=1)#读取数据 data_arr_list.append(data_arr) return data_arr_list #数据清洗 def prodess_data(data_arr_list): duration_in_min_list = [] for data_arr in data_arr_list: #读取数据所有行第0列 duration_str_col = data_arr[:,1] #去掉双引号 duration_in_ms = np.core.defchararray.replace(duration_str_col,'"','') #类型转换 duration_in_min = duration_in_ms.astype('float') / 1000 /60 #向量化操作将所有的ms转换为分钟 duration_in_min_list.append(duration_in_min) return duration_in_min_list #数据分析 def analyze_data(duration_in_min_list): duration_mean_list = [] for i,duration in enumerate(duration_in_min_list): duration_mean = np.mean(duration) print('第{}季度平均骑行时间:{:.2f}分钟'.format( i + 1 , duration_mean)) duration_mean_list.append(duration_mean) return duration_mean_list #结果展示 def show_result(duration_mean_list): plt.figure() plt.bar(range(len(duration_mean_list)),duration_mean_list) plt.show() #主函数 def main(): #数据获取 data_arr_list = collect_data() #数据处理 duration_in_min_list = prodess_data(data_arr_list) #数据分析 duration_mean_list = analyze_data(duration_in_min_list) #结果展示 show_result(duration_mean_list) if __name__ == '__main__': main()