Ich habe einen DataFrame df
:
name count
aaaa 2000
bbbb 1900
cccc 900
dddd 500
eeee 100
Ich möchte die Zeilen betrachten, die um den Faktor 10 vom Median der Zählerspalte entfernt sind.
Ich habe df['count'].median()
ausprobiert und den Median ermittelt. Aber weiß nicht, wie ich weiter vorgehen soll. Können Sie mir vorschlagen, wie ich Pandas/Numpy dafür verwenden könnte?.
Erwartete Ausgabe :
name count distance from median
aaaa 2000 *****
Ich kann jedes Maß als Abstand vom Median verwenden (absolute Abweichung vom Median, Quantile usw.).
Wenn Sie suchen, wie Sie die mittlere absolute Abweichung berechnen -
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
Wenn Sie den Median sehen möchten, können Sie df.describe () verwenden. Der 50% -Wert ist der Median.
für eine Spalte könnte auch mit statsmodels.robust.scale.mad
berechnet werden, wobei auch eine Normalisierungskonstante c
übergeben werden kann, die in diesem Fall nur 1 ist.
>>> from statsmodels.robust.scale import mad
>>> mad(df['count'], c=1)
800.0