Numpy & Pandas: Вернуть значения гистограммы из графика гистограммы панд?

python numpy pandas matplotlib

6541 просмотра

2 ответа

5733 Репутация автора

Я знаю, что могу построить гистограмму с помощью панд:

df4 = pd.DataFrame({'a': np.random.randn(1000) + 1})
df4['a'].hist()

введите описание изображения здесь

Но как я могу получить количество гистограмм из такого графика?

Я знаю, что могу сделать это (из значений гистограммы ряда панд )

count,division = np.histogram(df4['a'])

Но получить значение счетчика после df.hist()использования это выглядит очень избыточно. Можно ли получить значение частоты непосредственно от панд?

Автор: cqcn1991 Источник Размещён: 19.07.2016 06:53

Ответы (2)


14 плюса

183182 Репутация автора

Быстрый ответ:

pd.cut(df4['a'], 10).value_counts().sort_index()

Из документации :

bins: integer, default 10
Number of histogram bins to be used

Так посмотри на pd.cut(df4['a'], 10).value_counts()

Вы видите, что значения такие же, как из np.histogram

Автор: piRSquared Размещён: 19.07.2016 07:05

0 плюса

537 Репутация автора

Это еще один способ вычислить гистограмму в пандах. Это сложнее, но IMO лучше, так как вы избегаете странных строк, которые pd.cutвозвращают, которые разрушают любой сюжет. Вы также получите очки стиля за использование .pipe():

(df['a']
 .pipe(lambda s: pd.Series(np.histogram(s, range=(0, 100), bins=20)))
 .pipe(lambda s: pd.Series(s[0], index=s[1][:-1]))
)

В конце вы можете передать больше вещей, например:

.pipe(lambda s: s/s.sum())

который даст вам распространение.

В идеале, было бы разумным densityв pd.histтом , что может сделать это для вас. Pandasдействительно имеет density=Falseключевое слово, но это бессмысленно. Я читал объяснения тысячу раз, как этот , но я никогда не понимал этого и не понимал, кто на самом деле будет его использовать . В 99,9% случаев, когда вы видите дроби на гистограмме, вы думаете «распределение», а не np.sum(pdf * np.diff(bins))то, что density=Trueфактически рассчитывает. Заставляет тебя плакать.

Автор: Alex Spangher Размещён: 24.10.2018 06:54
Вопросы из категории :
32x32