首页 > 解决方案 > 在 Pandas 中分组查找中位数

问题描述

我有一个属性数据集。我想根据以下几个属性知道中位数价格: suburb, rooms, bathrooms, type, car, age。然后我想添加一个新的布尔列来说明该物业是否定价过高。

我的数据框样本(原始数据框有 180 个郊区):

house=pd.DataFrame({'subrub':['BALWYN NORTH','ARMADALE','ARMADALE','PASCOE VALE'],
                 'price':[1350000.0,800000.0,1250000.0,680000.0],
                'rooms':[3,4,7,2],
                'bathroom':[1.0,2.0,4.0,1.0],
                'type':['h','t','t','u'],
                'car':['2.0','1.0','4.0','1.0'],
                'age':[59.0,69.0,12.0,14.0]})

到目前为止,我已按郊区分组。我知道我可以median用来找到中位数,但我不确定如何处理其他属性。任何提示都会有所帮助。谢谢,

标签: pythonpandas

解决方案


像这样

def over_price(elements):
    median = np.median(elements)
    return elements > median 

house["OverPrice"] = house.groupby(["subrub","rooms","bathroom","type","car","age"])["price"].transform(over_price)

推荐阅读