【发布时间】:2020-04-13 12:33:35
【问题描述】:
我有一些这样的数据:
df = pd.DataFrame ({'id': ['A', 'A','A' ,'B', 'B','B', 'B'],
'cahnge' : ['False', 'True', 'False', 'False', 'Flase', 'True', 'False'],
'start': ['2017-1-1', '2018-5-5', '2017-5-21', '2017-6-6','2017-7-8','2017-8-9','2018-5-1'],
})
╔═══════╦════╦════════╦═══════════╗
║ index ║ id ║ cahnge ║ start ║
╠═══════╬════╬════════╬═══════════╣
║ 0 ║ A ║ False ║ 2017-1-1 ║
║ 1 ║ A ║ True ║ 2018-5-5 ║
║ 2 ║ A ║ False ║ 2017-5-21 ║
║ 3 ║ B ║ False ║ 2017-6-6 ║
║ 4 ║ B ║ Flase ║ 2017-7-8 ║
║ 5 ║ B ║ True ║ 2017-8-9 ║
║ 6 ║ B ║ False ║ 2018-5-1 ║
╚═══════╩════╩════════╩═══════════╝
我想使用 pandas 将其转换为如下所示:
╔═══════╦════╦══════════╦══════════╦══════╗
║ index ║ id ║ start ║ change ║ diff ║
╠═══════╬════╬══════════╬══════════╬══════╣
║ 0 ║ A ║ 2017-1-1 ║ 2018-5-5 ║ 489 ║
║ 1 ║ B ║ 2017-6-6 ║ 2017-8-9 ║ 64 ║
╚═══════╩════╩══════════╩══════════╩══════╝
结果是计算每个 id 的第一个日期与真正的更改日期之间的差异,并创建第二个表。
【问题讨论】: