• 共享单车骑行时间


    学习目标:

    熟悉数据分析的基本流程

    初步掌握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()
  • 相关阅读:
    Word Break
    Binary Tree Right Side View
    41. First Missing Positive
    2 Sum ,3 Sum, 3 Sum close
    216. Combination Sum III
    190. Reverse Bits
    143. Reorder List
    142. Linked List Cycle II
    Single Number i,ii,iii
    62. Unique Paths i & ii
  • 原文地址:https://www.cnblogs.com/bellin124/p/14781709.html
Copyright © 2020-2023  润新知