设置
我正在用Scrapy抓住住房广告并用熊猫分析结果。
我构建数据框架,对位置进行分组并聚合多个住房特征(例如租金)。
<小时/> 的问题
我想构建相同的数据帧,即分配位置和聚合住房特征,但现在也有条件地聚合。
也就是说,我对每个名为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)
这是我的工作代码,它不会有条件地聚合。
我在想我可以在两个DataFrame中分割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',
}
我该怎么办?
答案 0 :(得分:1)
如果我没有弄错,我想你可以在type
groupby
group = ['type', '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)
然后你应该能够到达type == 1
badf.loc[1]
或者
badf.xs(1)