当并非所有行都包含结束日期时,在数据帧中计算开始日期和结束日期

2024-09-29 02:21:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个使用Python查询SQL数据库、将结果解析为一系列数据帧并将结果输出到Excel表(xlsxwriter)的超级noob,只需在Python代码中执行一些计算,但我在一次操作中遇到了问题。我需要找出具有相同标识符的行之间的日期差异,但不是每个标识符都同时对应于开始日期和结束日期。我有这样的数据,例如:

ID   date       other stuff
1    1/01/2018  xxxxxx
2    1/04/2018  xxxxxx
2    1/08/2018  yyyyyy
3    1/14/2018  xxxxxx
4    2/01/2018  xxxxxx
4    2/04/2018  yyyyyy

我想结果是在一个新的数据框,是输出到一个单独的工作表在同一个Excel文件


Tags: 数据代码id数据库sqldate标识符差异
1条回答
网友
1楼 · 发布于 2024-09-29 02:21:59

尝试使用groupby

df['diff days'] = df.groupby('ID')['date'].diff()

输出:

   ID       date   other  stuff diff days
0   1 2018-01-01  xxxxxx    NaN       NaT
1   2 2018-01-04  xxxxxx    NaN       NaT
2   2 2018-01-08  yyyyyy    NaN    4 days
3   3 2018-01-14  xxxxxx    NaN       NaT
4   4 2018-02-01  xxxxxx    NaN       NaT
5   4 2018-02-04  yyyyyy    NaN    3 days

相关问题 更多 >