用Python读取熊猫csv的历史图

时间:2019-03-06 01:57:30

标签: python python-3.x pandas selection

我有一个这样的数据集:

num    gb     bw 
2.2    green  black
3.3    red    white
2.2    green  black
11.0   red    black

etc   

我试图提供一个包含4个直方图的子图,其中每个直方图都是一种颜色数据。

这是我的代码:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv('hw03_problem2.csv' , skiprows=1, names = ['num', 'gb', 'bw'])

#df = df.astype(float)

f, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, sharex='col', sharey='row')
df[df.gb == 'green'].num.plot.hist(ax = ax1)
df[df.gb == 'red'].num.plot.hist(ax = ax2)
df[df.bw == 'black'].num.plot.hist(ax = ax3)
df[df.bw == 'white'].num.plot.hist(ax = ax4)

plt.show()
plt.savefig('subplot_for_q2')

我收到此错误:

Empty 'DataFrame': no numeric data to plot

2 个答案:

答案 0 :(得分:1)

问题可能出在“ num”列格式。将其转换为浮点图。

类似:

df.num = df.num.astype(float)

答案 1 :(得分:0)

当您阅读excel文件时,您可以直接精确确定col num的变量类型:

df = pd.read_csv('hw03_problem2.csv' , skiprows=1, names = ['num', 'gb', 'bw'],dtype = {'num': float})