anon_swe
anon_swe

Reputation: 9355

Jupyter Notebook Hangs When Using DataFrame.Hist?

I'm using Jupyter notebook and get a DataFrame back with two columns: 'pageviews' and 'type'.

First, I run this in its own cell:

%matplotlib notebook

Then I run code to get my DataFrame object (code omitted here but it runs fine and returns the correct result).

However, when I run this cell:

import numpy as np
df.hist(by='pageviews')

it hangs (I see "[ * ]").

Any idea what's going on here / what I'm doing incorrectly?

Thanks!

P.S. For reference, my DataFrame has 140k-ish entries and doing df.hist(by='type') seems to work...

    <class 'pandas.core.frame.DataFrame'>
RangeIndex: 104215 entries, 0 to 104214
Data columns (total 2 columns):
pageviews    104215 non-null float64
type         104215 non-null object
dtypes: float64(1), object(1)
memory usage: 1.6+ MB

Response from doing:

df = df[:50]
df.hist(by='pageviews', bins=10)

array([[<matplotlib.axes._subplots.AxesSubplot object at 0x112a6b910>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x112bb1990>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x112ce8090>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x112d47310>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x112dc80d0>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x112e27e50>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x112ea6f50>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x112f179d0>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x112f9ce50>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x112f5d650>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x10d358e10>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x11306b9d0>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x1130dc750>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x113164950>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x1131d7310>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x11325e410>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x1132b8e50>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x113356210>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x11330a950>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x113443f10>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x1134c9d90>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x11353ba90>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x1135c2910>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x1136351d0>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x1136bc210>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x1137258d0>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x1137a9a90>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x11381d450>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x1138a5710>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x11382db10>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x11399e410>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x1139ccf50>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x113a88f50>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x113b0fdd0>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x113b83890>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x113c097d0>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x113c7c250>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x113d03350>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x113c39390>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x113dcfed0>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x113ded410>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x113ec9cd0>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x113f50b50>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x113fc2910>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x11404a790>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x1140be050>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x114144090>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x1141aa750>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x11422e910>]], dtype=object)

Upvotes: 0

Views: 329

Answers (1)

Diego Aguado
Diego Aguado

Reputation: 1596

Your pageviews column has dtype = float, try converting it to string

df.pageviews = df.pageviews.astype(int)

maybe this will help pandas to group and count the different bins.

Also, you could specify the number of bins with df.hist(by='pageviews', bins=10) for example

Upvotes: 1

Related Questions