与criteri类似时使用SQL CASE标记和聚合

2024-09-29 07:33:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从客户机数据创建一个汇总表。该表是属性分析的excel数据。数据包括:

  1. 唯一标识符
  2. 从被占用财产开展的业务
  3. 用于构建属性的材料的代码
  4. 建筑物的楼层数和
  5. 估价

enter image description here

客户要求根据风险状况(由楼层数定义)对物业进行总估价。报告格式显示,风险状况的标准根据故事数量分为低、中、高三类

enter image description here

举个例子,对于材料代码15-19,低风险意味着单层建筑。对于相同范围的材料规范,中等风险定义为2-3层建筑,高风险定义为3层以上建筑。我希望以相同的格式填充表格,而不是仅仅将它们标记为低、中或高,这里不是风险标记,而是估值总和列。 换言之,所有使用砖石建造的位置将进行汇总,相应的估价总额将根据楼层数分布在低、中、高栏中

为了解决这个问题,我使用了if-elif语句。我首先创建了一个列,使用“楼层数”列定义风险。它给了我3个条目中的每一行——低、中、高。使用相同的方法创建名为“建筑材质”的列。不知何故,我无法在3列中汇总和分配估价总额

有什么帮助吗

我的示例代码用于创建标记列-“BldgMaterial”:

def f(row):
  if 19 > row['MaterialCode'] > 15:
      print("Masonry")
  elif 40 > row['MaterialCode'] > 30:
      print("Concrete")
  elif 60 > row['MaterialCode'] > 50:
      print("Iron")
  else:
      print("Check")
  return "x"

Tags: 数据代码标记属性定义row材料风险