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

如何将日期拆分的Dataframe重塑为时间序列并批量处理分组数据

批量处理分组DataFrame并合并为时间序列

不需要手动逐个命名分组,用Pandas的groupby.apply配合pd.concat就能搞定,步骤如下:

1. 写一个分组处理函数

针对每个年月分组的DataFrame,完成转置、日期整合的操作:

import pandas as pd

def process_single_group(group_df):
    # 提取当前分组的年月(每个分组里的Month&Year值都一致,取第一个即可)
    month_year_str = group_df['Month&Year'].iloc[0]
    # 转置数据,让"日"索引变成列
    transposed = group_df.T
    # 删掉Month&Year行,只保留rate、pressure、cut的参数数据
    transposed = transposed.drop('Month&Year')
    # 把列名(日)和年月拼接成完整日期,转成datetime格式
    transposed.columns = pd.to_datetime(f"{transposed.columns} {month_year_str}", format="%d %b %Y")
    # 再次转置,让日期成为行索引、参数成为列
    return transposed.T

2. 批量处理并合并

用groupby按Month&Year分组,调用上面的函数处理每个分组,最后合并所有结果:

# 假设你的原始DataFrame名为raw_df
# sort=False保证分组顺序和原数据中年月出现的顺序一致,不会自动按年月排序
grouped = raw_df.groupby('Month&Year', sort=False)
# 批量处理所有分组
processed_groups = grouped.apply(process_single_group)
# 合并并清理索引
final_time_series = processed_groups.reset_index(level=0, drop=True).sort_index()

注意点

  • 如果你的Month&Year格式不是Jan 2024这种“月缩写+年”,要调整pd.to_datetime里的format参数,比如格式是2024-01的话,改成"%d %Y-%m"
  • sort_index()是可选操作,如果原分组的日期已经按时间顺序排列,可以省略

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 09:42:20