web-dev-qa-db-ja.com

pandasデータフレームの中央値

DataFrame dfがあります:

_name   count    
aaaa   2000    
bbbb   1900    
cccc    900    
dddd    500    
eeee    100
_

カウント列の中央値から10倍以内の行を確認します。

私はdf['count'].median()を試して中央値を得ました。しかし、さらに進める方法がわかりません。これにpandas/numpyをどのように使用できるかを提案できますか?.

予想される出力:

_name count distance from median

aaaa  2000   *****
_

中央値からの距離(中央値からの絶対偏差、変位値など)として任意のメジャーを使用できます。

7
Ssank

中央絶対偏差 の計算方法を探している場合-

In [1]: df['dist'] = abs(df['count'] - df['count'].median())

In [2]: df
Out[2]:
   name  count  dist
0  aaaa   2000  1100
1  bbbb   1900  1000
2  cccc    900     0
3  dddd    500   400
4  eeee    100   800

In [3]: df['dist'].median()
Out[3]: 800.0
17
ComputerFellow

中央値を見たい場合は、df.describe()を使用できます。 50%の値が中央値です。

1
Marjan Alavi

中央絶対偏差、

enter image description here

列の場合は statsmodels.robust.scale.mad 、正規化定数cを渡すこともできます。この場合は1です。

>>> from statsmodels.robust.scale import mad
>>> mad(df['count'], c=1)
800.0
1
miradulo