2015-03-03 101 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']) 

終於得到了我想要的