按Part分组计算相邻行滚动日期差的实现方法问询
解法步骤
你已经提前完成了Part、Date字段的排序,直接用pandas内置的分组差分方法就能实现需求,不需要额外写循环逻辑:
- 首先确保
Date列是datetime格式,避免字符串计算报错:
import pandas as pd df['Date'] = pd.to_datetime(df['Date'])
- 按
Part分组后对日期列做一阶差分,提取天数存入Diff列:
df['Diff'] = df.groupby('Part')['Date'].diff().dt.days
结果说明
- 每个
Part分组的第一行没有前序行,Diff会自动填充为NaN,符合你要的留空要求 - 计算逻辑完全在分组内部执行,不同Part的日期不会互相干扰,输出结果和你给出的示例完全一致:
Part Date Diff Part1 2023-01-01 NaN Part1 2023-01-08 7 Part1 2023-01-15 7 Part2 2023-02-01 NaN Part2 2023-02-12 11 Part2 2023-02-14 2
内容的提问来源于stack exchange,提问作者jmarusiak
相关产品推荐
相关产品推荐

