1. ホーム
  2. python

Pandasシリーズのヒストグラム値

2023-08-22 06:47:45

質問

Python Pandas Seriesにいくつかの値を持っています(タイプ。 pandas.core.series.Series )

In [1]: series = pd.Series([0.0,950.0,-70.0,812.0,0.0,-90.0,0.0,0.0,-90.0,0.0,-64.0,208.0,0.0,-90.0,0.0,-80.0,0.0,0.0,-80.0,-48.0,840.0,-100.0,190.0,130.0,-100.0,-100.0,0.0,-50.0,0.0,-100.0,-100.0,0.0,-90.0,0.0,-90.0,-90.0,63.0,-90.0,0.0,0.0,-90.0,-80.0,0.0,])

In [2]: series.min()
Out[2]: -100.0

In [3]: series.max()
Out[3]: 950.0

ヒストグラムの値を取得したいのですが...(ヒストグラムのプロットは必要ありません) 各区間の頻度を知りたいだけなのですが。

私のインターバルが[-200; -150]から[950; 1000]になっているとします。

ということで、下界は

lwb = range(-200,1000,50)

で、上限は

upb = range(-150,1050,50)

頻度(各区間に含まれる値の数)の求め方が今ひとつわからない...。 lwbとupbを定義する必要がないことは確かです...しかし、私はこれを実行するためにどのような 関数がわかりません! (Pandasのドキュメントに潜った結果、私が思うに cut 関数は離散化の問題なので、私を助けることができると思いますが、私はそれを使用する方法を理解していない)

これができるようになったら、ヒストグラムの表示方法を検討します(これは別の問題ですが)。

どのように解決するのですか?

あなたはただ ヒストグラム の関数 NumPy :

import numpy as np
count, division = np.histogram(series)

ここで、divisionは自動的に計算されたビンの境界線、countは各ビン内の人口を表します。

ビンの数を固定する必要がある場合は、引数binsでビンの数を指定するか、各ビンの境界を直接与えることができます。

count, division = np.histogram(series, bins = [-201,-149,949,1001])

を使用して結果をプロットすることができますが,pandasで作業している場合,各シリーズは独自にhist関数へのハンドルを持ち,選択されたビンニングを与えることができます.

series.hist(bins=division)


編集 : 他の投稿者の方がおっしゃっているように Pandas の上に構築されています。 NumPy . OPは明示的に Pandas にアクセスすることで、追加のインポートを省くことができます。 NumPy を通して Pandas :

count, division = pd.np.histogram(series)