熊猫数据框将计算应用于选定的行

暴躁的8

我正在尝试使用中位数绝对偏差来计算数据集中的离群值。我的数据集是3列,2000行,格式如下:

Km      Price   id
139000  8500    2010 holden cruze cdx jg auto
173000  8500    2010 holden cruze cdx jg auto
95000   8800    2008 honda civic vti-l auto
141000  8800    2010 holden cruze cdx jg auto
169078  8880    1999 mazda mx-5 manual

我该如何进行数组计算,如下所示。我希望每一行都有一个“中位数”值,该值应该是具有相同ID的所有行的中位数。

model = '2010 holden cruze cdx jg auto'
data[data['id']==model]['median'] = data[data['id']==model]['Price'].median()

下面的语句为每种模型提供了正确的中位数,我只是不知道如何快速将其应用于“中位数”列中的每一行。

median = data[data['id']==model]['Price'].median()

或者,或者,我对中位数绝对偏差的处理方法是否错误-使用pandas / numpy可以更快速/轻松地做到这一点吗?

亚历山大大帝

您可以使用transform,它返回与数据帧相同长度的序列:

df['median'] = df.groupby('id').Price.transform('median')

>>> df
       Km  Price                             id  median
0  139000   8500  2010-holden-cruze-cdx-jg-auto    8500
1  173000   8500  2010-holden-cruze-cdx-jg-auto    8500
2   95000   8800    2008-honda-civic-vti-l-auto    8800
3  141000   8800  2010-holden-cruze-cdx-jg-auto    8500
4  169078   8880         1999-mazda-mx-5-manual    8880

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章