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

如何重构pandas DataFrame结构将行日期值转为开始及结束日期列

你可以通过pandas的分组聚合功能实现该转换,具体操作如下:

  1. 先将Date列转换为日期类型,避免字符串排序出现异常
  2. 按ID和number字段分组,分别取日期的最小值作为开始日期、最大值作为结束日期

示例代码:

import pandas as pd

# 你的原始DataFrame
df = pd.DataFrame({'Date': ['2020-01-01', '2020-10-01', '2021-01-01', '2021-10-01'],
                   'ID': [101, 101, 102, 102],
                   'number': [10, 10, 11, 11]})

# 转换日期列格式
df['Date'] = pd.to_datetime(df['Date'])

# 分组聚合得到目标结构
res = df.groupby(['ID', 'number'], as_index=False).agg(
    **{'Start Date': ('Date', 'min'), 'End Date': ('Date', 'max')}
)
# 调整列顺序匹配需求
res = res[['Start Date', 'End Date', 'ID', 'number']]

运行后得到的res就是你需要的格式。如果实际业务中同一ID和number组合下存在多条日期记录,该方法也会自动取最早和最晚日期作为起止时间,适配性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:54:08