You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求SharePoint列表分组字段月度Delta计算方案(非同步创建项)

非同步列表项的月度Delta差值计算方案

核心思路

针对非同步创建的列表项,先统一所有项的时间轴,补全缺失月份的数值,再分别计算单个项或全局的月度差值。

具体步骤

  • 整理数据结构:确保每条数据包含item_id(列表项标识)、month(统计月份)、value(月度数值),以及可选的create_date(项创建时间)。
  • 补全月度数据:以所有项涉及的月份为时间轴,为每个项填充缺失月份的数值(无数据时通常填0,可根据业务调整)。
  • 计算Delta差值:对单个项,用当月数值减去上月数值;对全局总和,先按月度求和,再计算相邻月份的差值。

示例代码(Python + Pandas)

import pandas as pd

# 模拟非同步创建的列表项数据
data = [
    {"item_id": 1, "create_date": "2023-01-15", "month": "2023-01", "value": 10},
    {"item_id": 1, "month": "2023-02", "value": 15},
    {"item_id": 1, "month": "2023-03", "value": 20},
    {"item_id": 2, "create_date": "2023-02-20", "month": "2023-02", "value": 8},
    {"item_id": 2, "month": "2023-03", "value": 12},
    {"item_id": 3, "create_date": "2023-03-05", "month": "2023-03", "value": 5}
]

# 转换为时间格式的DataFrame
df = pd.DataFrame(data)
df["month"] = pd.to_datetime(df["month"]).dt.to_period("M")

# 生成完整的月度时间轴
all_months = df["month"].unique().sort()

# 补全每个项在所有月份的数值(缺失月份填0)
full_df = df.set_index(["item_id", "month"]).unstack(fill_value=0).stack().reset_index()

# 计算单个项的月度Delta
full_df["delta"] = full_df.groupby("item_id")["value"].diff().fillna(0)

# 计算全局月度总和的Delta
monthly_total = full_df.groupby("month")["value"].sum().reset_index()
monthly_total["total_delta"] = monthly_total["value"].diff().fillna(0)

# 输出结果
print("单个项月度差值:")
print(full_df[["item_id", "month", "value", "delta"]])
print("\n全局月度总差值:")
print(monthly_total)

说明

  • 代码会自动补全每个列表项未参与统计的月份数值,保证时间轴统一;
  • 单个项的delta为当月与上月的数值差,首次出现的月份差值为0;
  • 全局total_delta是当月所有项总和与上月总和的差值,适用于整体趋势分析。

内容的提问来源于stack exchange,提问作者Bar Podolsky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 22:07:20