2015-03-03 100 views
0

我在网站上的任何地方都找不到类似的问题。熊猫数据框的直方图

我有一个相当大的文件,有超过10万线和我读它使用大熊猫:

df = pd.read_excel("somefile.xls",index_col='Offense Type') 

结束了一个数据帧由第一列(索引列)和另一列的,“Offense_type '和'小时'。

“进攻型”包括了一系列的“cathegories”说CAT1,CAT2,CAT3,等... “一小时”由1和24

之间的一系列整数的什么我会喜欢做的是获得每个数字的ocurrences的直方图数据帧(有没有那么多的cathegories这是他们最多10)

这里是什么,我想”

ASCII表示(x代表直方图中的条形,它们肯定会比1,2或3)

x  x   # And so on 
x x x  x x x # 
x x x x x x x # 
1 2 11 20 5 8 18 # 
    Cat1  Cat2  # 

但我使用得到一个单一barplot为每一行中DF:

df.plot(kind='bar') 

这基本上是不可读:

histogram_of_dataframe

我也尝试过hist()和Histogram()函数,但没有运气。

下面是一些样本数据:

sample_data

+0

您需要查看pandas [group by](http://pandas.pydata.org/pandas-docs/version/0.15.2/groupby.html)功能将数据转换成你想要的形式。 – 2015-03-03 02:49:19

+1

如果你发布了一些样本数据,那么玩这个问题就容易得多;从两个或三个类别的几行,说。尝试'df.to_dict { – cphlewis 2015-03-03 06:11:42

+0

...但不是整个文件!例如,参见df.head(n = 20)。 – cphlewis 2015-03-03 06:23:45

回答

1

一个漫长的夜晚后,我得到了,因为一旦我加入的头号文件中的一个额外的列的每一个事件只是ocurring答案,然后编入索引据帧通过这样的:

df = pd.read_excel("somefile.xls",index_col='Numberone') 

,然后简单地尝试这样做:

df.hist(by=df['Offense Type']) 

终于得到了我想要的