From 2621e2b98ed3f6511dc2881d78a56466c50b23c8 Mon Sep 17 00:00:00 2001 From: panda <1415243231@qq.com> Date: Wed, 31 Dec 2025 10:50:45 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9D=9E=E6=A0=87=E3=80=81=E7=9C=81=E5=B8=82?= =?UTF-8?q?=E5=8C=BA=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../non_standar_performance_to_BI.py | 20 ++++++++++++++++++- .../province_city_person_relation_to_bi.py | 4 +++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/back_ground_module/non_standar_performance_to_BI.py b/back_ground_module/non_standar_performance_to_BI.py index a23e90c..157c1dd 100644 --- a/back_ground_module/non_standar_performance_to_BI.py +++ b/back_ground_module/non_standar_performance_to_BI.py @@ -155,7 +155,25 @@ class NonStandardPerformanceToBI: # 3. 去掉时区信息(变成 naive datetime),然后格式化为字符串 df[col] = dt_beijing.dt.tz_localize(None).dt.strftime('%Y-%m-%d %H:%M:%S') - # 4.处理所有配置的列表字段 + # 4.业绩动作等于拆单做复制 + + # 4.1. 定义条件 + mask = df['业绩动作'] == '拆单' + + # 4.2. 复制满足条件的行 + new_rows = df[mask].copy() # ⚠️ 一定要用 .copy() 避免 SettingWithCopyWarning + + # 3. 修改新行中的某些列 + new_rows['小六业绩金额'] = -new_rows['小六业绩金额'] + new_rows['区域业绩金额'] = -new_rows['区域业绩金额'] + new_rows['报备业绩归属小六'] = new_rows['原业绩归属人'] + new_rows['报备业绩归属区域经理'] = new_rows['原业绩归属区域经理'] + new_rows['报备业绩归属大区'] = new_rows['原业绩归属大区'] + + # 4. 合并回原 DataFrame + df = pd.concat([df, new_rows], ignore_index=True) + + # 5.处理所有配置的列表字段 if "新签阶段及提成比例" in df.columns: # 先处理订单登记表字段 df["新签阶段及提成比例"] = df["新签阶段及提成比例"].apply( diff --git a/back_ground_module/province_city_person_relation_to_bi.py b/back_ground_module/province_city_person_relation_to_bi.py index 512c95a..5d36681 100644 --- a/back_ground_module/province_city_person_relation_to_bi.py +++ b/back_ground_module/province_city_person_relation_to_bi.py @@ -28,7 +28,6 @@ class ProvinceCityPersonRelationToBI: self.field_mapping = { "省": "_widget_1734677164861", "市": "_widget_1734677164862", - "区": "_widget_1734677164863", "运营顾问": "_widget_1734677164864", "区域经理": "_widget_1734677164865", "运营专家": "_widget_1734677164866", @@ -60,6 +59,9 @@ class ProvinceCityPersonRelationToBI: for col in user_columns: df[col] = df[col].map(lambda x: x.get("name", "") if isinstance(x, dict) else "") + # 3.根据省市去重 + df = df.drop_duplicates(subset=['省', '市']) + return df def clear_table_data(self):