如何在Tableau中计算纽约五大区公寓的销售及租金中位数
解决纽约五大区公寓销售/租金中位数计算问题
我来帮你搞定这个问题!之前用表计算没成功,大概率是因为没先把销售和租赁数据分开处理,导致中位数计算把两类数据混在一起了。下面是具体的解决步骤:
第一步:区分销售与租赁数据
首先得把ListPrice里的销售和租金数据拆分开,这是核心前提:
- 如果你的数据集里有专门的标识字段(比如
ListingType、TransactionType,值为"SALE"或"RENT"),直接把该字段拖到「筛选器」面板,选择对应的值即可(选"SALE"算销售中位数,选"RENT"算租金中位数)。 - 要是没有专门的标识字段,就根据业务规则创建计算字段来区分,比如纽约公寓的销售总价肯定远高于月度租金,你可以设定阈值:
// 计算字段:IsSaleOrRent IF [ListPrice] > 150000 THEN "销售" ELSE "租金" END
(阈值可以根据你的实际数据调整,比如看租金的最高值和销售的最低值来确定分界点)
第二步:计算中位数(无需复杂表计算)
用Tableau内置的聚合函数就能直接搞定,比表计算更可靠:
方式1:快速在视图中展示
- 把「行政区」字段(比如包含布鲁克林、布朗克斯等的
Borough字段)拖到行/列位置。 - 把
ListPrice拖到「标记」面板的「文本」区域,右键点击ListPrice,选择「度量 > 中位数」。 - 结合第一步的筛选器(或计算字段),切换销售/租赁的筛选条件,就能得到每个区对应的中位数。
方式2:创建可复用的计算字段
如果需要后续在多个视图中复用这两个中位数,可以创建专门的计算字段:
// 计算字段:销售价格中位数 MEDIAN(IF [IsSaleOrRent] = "销售" THEN [ListPrice] END)
// 计算字段:租金价格中位数 MEDIAN(IF [IsSaleOrRent] = "租金" THEN [ListPrice] END)
把这两个计算字段拖到视图中,配合行政区字段,就能一次性展示所有区的销售和租金中位数。
第三步:验证结果
最后记得检查数据合理性:
- 确认筛选后的销售数据都是公寓总价,租金是月度租金(如果是其他周期,记得调整单位)。
- 对比常识判断结果是否合理(比如曼哈顿的销售中位数应该远高于布朗克斯)。
之前用表计算失败,大概率是因为表计算的计算范围或方向没设置对,而用聚合函数+条件判断的方式更直接,也不容易出错。
内容的提问来源于stack exchange,提问作者Sharon M
相关产品推荐
相关产品推荐

