【发布时间】:2017-09-16 20:51:35
【问题描述】:
设置
我正在用 Scrapy 抓取房屋广告,并用 pandas 分析结果。
我构建数据框,按位置分组并汇总多个住房特征(例如租金)。
问题
我想构建相同的数据框,即按位置分组并汇总住房特征,但现在也有条件地汇总。
也就是说,我为每个名为type 的住房广告设置了一个特征,即1 或2。我想根据type 是1 或2 对位置进行分组并汇总住房特征。
代码
group = ['borough','click district name for housing ads','district']
mdf['# for rent'] = 1
aggregator = {
'median rent pw':'median',
'rent pw':'mean',
'# of roommates':'mean',
'# for rent':'sum',
}
badf = mdf.groupby(group)['median rent pw','rent pw','# of roommates'].agg(aggregator)
这是我的工作代码,它不会有条件地聚合。
我想我可以将mdf 拆分为两个数据帧——每个type 一个——然后在两个帧上运行代码并将结果合并到一个表中。不过,这似乎有点低效。
我希望代码做这样的事情:
aggregator = {
'median rent pw type 1 ':'median, conditionally on type = 1',
'median rent pw type 2 ':'median, conditionally on type = 2',
'median rent pw':'median',
'rent pw type 1':'mean, conditionally on type = 1',
'rent pw type 2':'mean, conditionally on type = 2',
'rent pw':'mean',
'# of roommates':'mean',
'# for rent':'sum',
}
我该怎么做?
【问题讨论】:
标签: python pandas dataframe conditional aggregation