python读取csv数据画直方图_利用matplotlib和pandas从csv文件绘制直方图

import pandas as pd

import matplotlib.pyplot as plt

import io

temp=u"""kmem_kmalloc;{cpu_id=1}

kmem_kmalloc;{cpu_id=1}

kmem_kmalloc;{cpu_id=1}

kmem_kmalloc;{cpu_id=1}

kmem_kfree;{cpu_id=1}

kmem_kfree;{cpu_id=1}

power_cpu_idle;{cpu_id=0}

power_cpu_idle;{cpu_id=0}

power_cpu_idle;{cpu_id=3}"""

s = pd.read_csv(io.StringIO(temp), #after testing replace io.StringIO(temp) to filename

sep=";", #set separator, if sep=',' can be omited (default sep = ,)

header=None, #no header in csv

names=[None,'cpuid'], #set names of columns, (first is None because index)

index_col=0, #first column set to index

squeeze=True) #try convert DataFrame to Series

print s

kmem_kmalloc {cpu_id=1}

kmem_kmalloc {cpu_id=1}

kmem

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,我们需要读入 Train.csv 数据集,并将 time 列转换为 pandas 的日期格式: ```python import pandas as pd # 读入 Train.csv 数据集 df_train = pd.read_csv('Train.csv') # 将 time 列转换为 pandas 的日期格式 df_train['time'] = pd.to_datetime(df_train['time'], unit='s') ``` 然后,我们可以绘制时间直方图,观察记录时间的分布特点: ```python import matplotlib.pyplot as plt # 绘制时间直方图 plt.hist(df_train['time'], bins=50) plt.xlabel('Time') plt.ylabel('Count') plt.show() ``` 该代码会绘制时间直方图,横轴为时间,纵轴为记录数量。可以观察到记录数量在不同时间段之间存在较大的差异,可能与设备负载量、运行状态等因素有关。 接下来,我们需要选择 2017 年 6 月 6 日的所有记录,并计算设备负载量之间的相关性。可以使用 pandas 的 loc 函数选择指定时间段的记录,并使用 pivot_table 函数将记录按设备分类: ```python # 选择 2017 年 6 月 6 日的所有记录 start_time = pd.Timestamp('2017-06-06 00:00:00') end_time = pd.Timestamp('2017-06-06 23:59:00') df_selected = df_train.loc[(df_train['time'] >= start_time) & (df_train['time'] <= end_time)] # 将记录按设备分类,并计算负载量的平均值 df_pivot = pd.pivot_table(df_selected, values='payload', index='hash', aggfunc='mean') ``` 接下来,我们可以使用 pandas 的 corr 函数计算设备负载量之间的相关性,并绘制相关性热力图: ```python import seaborn as sns # 计算相关性 corr = df_pivot.corr() # 绘制相关性热力图 sns.heatmap(corr, cmap='coolwarm') plt.title('Correlation Heatmap') plt.show() ``` 该代码会绘制相关性热力图,颜色越深表示相关性越强。可以观察到,在该时间段内,设备负载量之间存在一定的相关性,但相关性不是非常强。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值