非标业绩提报、合伙人结算登记字段时间分区修改

This commit is contained in:
z66
2025-12-25 15:35:03 +08:00
parent ab434f6c4c
commit 5e53157a78
4 changed files with 99 additions and 16 deletions
+11 -10
View File
@@ -139,13 +139,15 @@ class PartnerSettlementToBI:
df[col] = df[col].map(lambda x: x.get("name", "") if isinstance(x, dict) else "")
# 3.日期字段转为北京时间
time_columns = ["提交时间", "更新时间","订单支付时间-核实","结算月份"]
# 3. 日期字段转为北京时间(主表)
time_columns = ["提交时间", "更新时间", "订单支付时间-核实", "结算月份"]
df[time_columns] = df[time_columns].apply(
lambda col: pd.to_datetime(col, errors='coerce')
.dt.tz_localize(None)
.dt.strftime('%Y-%m-%d %H:%M:%S')
)
for col in time_columns:
if col in df.columns:
# 假设原始时间是 UTC(即使字符串无时区)
dt_utc = pd.to_datetime(df[col], errors='coerce', utc=True)
dt_beijing = dt_utc.dt.tz_convert('Asia/Shanghai')
df[col] = dt_beijing.dt.tz_localize(None).dt.strftime('%Y-%m-%d %H:%M:%S')
# 4.处理订单登记表列表字段,将其拆分成多行
if "订单登记表" in df.columns:
@@ -168,12 +170,11 @@ class PartnerSettlementToBI:
time_columns_nested = ["订单支付时间"] # 来自订单登记表等嵌套结构
# 时间字段标准化:处理订单支付时间
for col in time_columns_nested:
if col in df_exploded.columns:
df_exploded[col] = pd.to_datetime(df_exploded[col], errors='coerce') \
.dt.tz_localize(None) \
.dt.strftime('%Y-%m-%d %H:%M:%S')
dt_utc = pd.to_datetime(df_exploded[col], errors='coerce', utc=True)
dt_beijing = dt_utc.dt.tz_convert('Asia/Shanghai')
df_exploded[col] = dt_beijing.dt.tz_localize(None).dt.strftime('%Y-%m-%d %H:%M:%S')
# 删除原始的订单登记表列
df_exploded = df_exploded.drop(columns=["订单登记表"])