Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用matplotlib和pandas从csv文件打印直方图_Python_Csv_Pandas_Matplotlib_Histogram - Fatal编程技术网

Python 使用matplotlib和pandas从csv文件打印直方图

Python 使用matplotlib和pandas从csv文件打印直方图,python,csv,pandas,matplotlib,histogram,Python,Csv,Pandas,Matplotlib,Histogram,我的csv文件非常复杂。。它包含数字和字符串属性。 这就是我的csv文件的样子 我想绘制进程与您可以使用的cpuid的直方图,并通过以下方式绘制: #如果最大cpu数为9 #s=s.str.extract(“(\d)”,expand=False) 印刷品 kmem_kmalloc 1 kmem_kmalloc 1 kmem_kmalloc 1 kmem_kmalloc 1 kmem_kfree 1 kmem_kfree 1 电源\u cpu\u空闲0 电源\u cpu\u空闲0 电源\u cpu

我的csv文件非常复杂。。它包含数字和字符串属性。 这就是我的csv文件的样子 我想绘制进程与您可以使用的cpuid的直方图,并通过以下方式绘制:

#如果最大cpu数为9
#s=s.str.extract(“(\d)”,expand=False)
印刷品
kmem_kmalloc 1
kmem_kmalloc 1
kmem_kmalloc 1
kmem_kmalloc 1
kmem_kfree 1
kmem_kfree 1
电源\u cpu\u空闲0
电源\u cpu\u空闲0
电源\u cpu\u空闲3
名称:cpuid,数据类型:int32
plt.figure();
s、 历史(α=0.5)
plt.show()

您是否可以展示您尝试过的内容,例如,您没有发布任何加载数据的代码,或者尝试将csv作为数据帧进行读取。如果第二列中只有
cpu\u id
,那么简单地给该列标题“cpu\u id”并删除(搜索/替换)是否有意义除了值0/1之外的所有字段?
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_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}
Name: cpuid, dtype: object
#if max cpu <= 9, use Indexing with .str 
s = s.str[-2].astype(int)

#if cpu > 9 
#s= s.str.extract('(\d)', expand=False)
print s
kmem_kmalloc      1
kmem_kmalloc      1
kmem_kmalloc      1
kmem_kmalloc      1
kmem_kfree        1
kmem_kfree        1
power_cpu_idle    0
power_cpu_idle    0
power_cpu_idle    3
Name: cpuid, dtype: int32

plt.figure();
s.hist(alpha=0.5)
plt.show()