问题
代码
设置
我正在用砂纸刮擦住房广告,并用熊猫分析结果。
i构建数据框,分组位置并汇总了几个住房特征(例如租金(。
问题
我想构建相同的数据范围,即分组位置并汇总住房特征,但现在也有条件地汇总。
也就是说,我有一个名为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',
}
我怎么去?
如果我没记错的话,我认为您只能在groupby
type
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)