美文网首页
Python 脚本解析grafana之csv文件直接得出平均数、

Python 脚本解析grafana之csv文件直接得出平均数、

作者: 谁知洛神赋 | 来源:发表于2018-03-06 22:14 被阅读0次
    import pandas as pd
    import math
    #使用说明
    #1.终端安装python3和pandas库
    #2.将下载的csv文件命名为grafana_data_export.csv并放在此py同目录下 终端执行'python3 script.py'
    
    
    df = pd.read_csv('./grafana_data_export.csv', skiprows=[0])  # 忽略第一行
    rows = df.shape[0]
    while rows > 0:
        a = df.values[rows-1]
        a = a[0].split(';')                     # 按分号分割字符串为数组
        lenth = len(a)
        df.values[rows-1] = a[lenth-1]          # 用分割字符数组的最后一个代替原df对应行的值
        rows -= 1
    df.columns = ['A']                          # 起列名A
    a = df['A']
    rows = df.shape[0]
    
    while rows > 0:                               # 字符转数字 为空的转为0
        rows -= 1
        if df.values[rows-1] != "null":
            df.values[rows-1] = float(df.values[rows-1])
        else:
            df.values[rows-1] = 0
    
    df = df[df.A > 0]
    arr = df['A']
    arr = arr.values
    arr = arr.tolist()
    
    # 平均耗时
    print('平均毫秒:%s' % round(np.mean(arr), 2))
    
    # 中位数
    print('中位数:%s' % round(np.median(arr), 2))
    
    # 1s内占比
    rows = df.shape[0]                  # 多少行
    greater_df = df[df.A >= 1000]       # 取出大于1的
    greater_rows = greater_df.shape[0]  # 行数
    percents = round(1 - (greater_rows/rows), 4)
    print('1s内占比:%s%%' % str(percents*100))
    
    # 方差
    print('方差:%s' % np.var(arr))
    # 标准差
    print('标准差:%s' % round(np.std(arr), 2))
    # 极差
    print('极差:%s' % np.ptp(arr))
    # 变异系数
    print('变异系数:%s%%' % round((np.std(arr)/np.mean(arr))*100, 4))
    

    相关文章

      网友评论

          本文标题:Python 脚本解析grafana之csv文件直接得出平均数、

          本文链接:https://www.haomeiwen.com/subject/wlqdfftx.html