77

pandas.core.series.SeriesPython Pandas シリーズ (タイプ: )にいくつかの値があります。

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 docに飛び込んだ後cut、離散化の問題であるため、関数が役立つと思います...しかし、使用方法がわかりません)

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

4

3 に答える 3

100

のヒストグラム関数を使用するだけですNumPy:

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

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

特定の数のビンを修正する必要がある場合は、引数 bins を使用してビンの数を指定するか、各ビン間の境界を直接与えることができます。

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

結果をプロットするには、matplotlib 関数 hist を使用できますが、パンダで作業している場合、各シリーズには hist 関数への独自のハンドルがあり、選択したビニングを与えることができます。

series.hist(bins=division)

編集:別のポスターで述べたように、Pandas上に構築されていNumPyます。OP は明示的に を使用しているため、次Pandasのようにアクセスすることで追加のインポートを廃止できNumPyますPandas

count, division = pd.np.histogram(series)
于 2012-10-29T22:07:25.197 に答える
2

ヒストグラムの値を取得したいと言った場合、私が間違っていなければ、シリーズ内の各一意の値の頻度を探しているだけです。その場合、単純に を実行できますserie.value_counts()。これにより、次の結果が得られます。

 0.0      16
-90.0      8
-100.0     5
-80.0      3
 63.0      1
-50.0      1
 130.0     1
 190.0     1
 840.0     1
-48.0      1
 208.0     1
-64.0      1
 812.0     1
-70.0      1
 950.0     1
于 2016-11-25T04:48:23.500 に答える