from pandas import DataFrame
import numpy as np
x = ['A'] * 300 + ['B'] * 400 + ['C'] * 300
y = np.random.randn(1000)
df = DataFrame({'Letter': x, 'N': y})
grouped = df.groupby('Letter')
for group in grouped:
    figure()
matplotlib.pyplot.hist(group[1].N)
show()
Построение гистограмм из сгруппированных данных в pandas DataFrame