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文件直接得出平均数、中位数和占比
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 【蝴蝶效应】 蝴蝶效应:上个世纪70年代,美国一个名叫洛伦兹的气象学家在解释空气系统理论时说,亚马逊雨林一只蝴蝶...