python-确定CPU使用率的时间

前端之家收集整理的这篇文章主要介绍了python-确定CPU使用率的时间 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有兴趣了解我的系统的cpu使用率保持70%或更高的时间.我的样本数据如下所示.完整数据为here

Time                    cpuDemandPercentage
2019-03-06 03:55:00     40.17
2019-03-06 14:15:00     77.33
2019-03-06 14:20:00     79.66

为了实现我想要的目标,我进行了以下探索.我试图:

>确定峰位
>确定峰宽

import numpy as np
import matplotlib.pyplot as plt 
import scipy.signal
from pandas import read_csv
data=read_csv('data.csv',header=0,usecols=["cpuDemandPercentage"])
y = np.array(data['cpuDemandPercentage'])
indexes = scipy.signal.find_peaks_cwt(y,np.arange(1,4))
plt.plot(indexes,y[indexes],"xr"); plt.plot(y); plt.legend(['Peaks'])
plt.show()

这给了我一个像图

Peak

>不太准确,没有显示负峰.我如何在这里提高准确性.
>以及如何找到峰的宽度.

我在这里毫无头绪.有人能帮我吗.

最佳答案
大熊猫的另一个答案:这种解决方案是通用的,在两次测量之间无需有相同的时间增量

df['Time']=df['Time'].apply((lambda x: pd.to_datetime(x)))
df['TimeDelta'] = df['Time'].shift(-1) - df['Time']
filter = df['cpuDemandPercentage'] >= 70.0
df['changes'] = [(x,y) for x,y in zip(filter,filter.shift(-1))]
result  = df[df['changes']==(True,True)]['TimeDelta'].sum()

print(f'Timecpu>=70%: {result} or {result.total_seconds()/60} minutes')

输出

Timecpu>70%: 0 days 03:10:00 or 190.0 minutes

猜你在找的Python相关文章