我有以下数据:
machine_id time_to_failure
430494 1000
430494 700
430494 500
430494 100
430495 1000
430495 200
故障时间数据是从引用日期 0 开始计算的,我想将其转换为自上次故障以来的时间:
machine_id time_to_failure
430494 300
430494 200
430494 400
430494 100
430495 800
430495 200
我尝试使用 groupby 并将重复行旋转到新列中以进行减法。但是,我想就地执行此操作以保留其他列。
最佳答案
让我们尝试使用 groupby().diff()
:
df['time_to_failure'] = (df.groupby('machine_id')
['time_to_failure'].diff(-1)
.fillna(df['time_to_failure'])
)
输出:
machine_id time_to_failure
0 430494 300.0
1 430494 200.0
2 430494 400.0
3 430494 100.0
4 430495 800.0
5 430495 200.0
关于python - 如何在保留列的同时找到累积计数行之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64382404/