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

如何按指定日期、指定日期所属月份及上月汇总数据

按指定日期、当月及上月汇总数据的实现方案

需求说明

需基于选定日期,以COA Code为分组维度,分别聚合三类数据:选定日期的单条数据、选定日期所属月份的汇总数据、选定日期上月的汇总数据,最终合并成目标格式结果。

示例数据

import pandas as pd
df = pd.read_excel('https://github.com/hoatranobita/hoatranobita/raw/refs/heads/main/Check%20data%20(1).xlsx', sheet_name='Data')
# 数据结构示例
"""
    COA Code    USDConversion Amount    Base Date 2
0   19010000000 26924582.44            2024-10-01
1   19010000000 38835600.44            2024-10-02
...
69  58000000000 38323598.99            2024-11-18
"""

期望输出(选定日期为2024-11-18时)

COA Code        2024-11-18  October         November
0   19010000000 42625047.24 1354513618.61   584813860.97
1   58000000000 38323598.99 820927014.08    456265522.64

实现步骤与代码

1. 预处理日期列

确保日期列转为datetime类型,便于时间维度筛选:

df['Base Date 2'] = pd.to_datetime(df['Base Date 2'])

2. 定义目标日期并计算时间范围

target_date = pd.to_datetime('2024-11-18')
# 计算当月的起止日期
current_month_start = target_date.replace(day=1)
current_month_end = target_date + pd.offsets.MonthEnd(0)
# 计算上月的起止日期
last_month_start = current_month_start - pd.offsets.MonthBegin(1)
last_month_end = current_month_start - pd.offsets.Day(1)

3. 分别提取三类数据并聚合

# 1. 选定日期的单条数据
date_data = df[df['Base Date 2'] == target_date].set_index('COA Code')['USDConversion Amount'].rename(str(target_date.date()))

# 2. 上月数据汇总求和
last_month_data = df[
    (df['Base Date 2'] >= last_month_start) & 
    (df['Base Date 2'] <= last_month_end)
].groupby('COA Code')['USDConversion Amount'].sum().rename(last_month_start.strftime('%B'))

# 3. 当月数据汇总求和
current_month_data = df[
    (df['Base Date 2'] >= current_month_start) & 
    (df['Base Date 2'] <= current_month_end)
].groupby('COA Code')['USDConversion Amount'].sum().rename(current_month_start.strftime('%B'))

4. 合并数据得到最终结果

result = pd.concat([date_data, last_month_data, current_month_data], axis=1).reset_index()
print(result)

执行后即可得到与期望格式一致的输出。


内容的提问来源于stack exchange,提问作者hoa tran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 04:01:16