python - 如何在保留列的同时找到累积计数行之间的差异

标签 python pandas dataframe csv

我有以下数据:

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/

相关文章:

python - Matplotlib如何在PIL图像上画图

python - 如何检查列表中的所有项目是否都是字符串

python - Seaborn tsplot 不显示 CI strip

python - 按列名称的数据框子集列表

python - 根据多行将 Dataframe 拆分为多个部分

python - pickle numpy数组的子类时保留自定义属性

python - 计算标准偏差

python - 我一直在尝试将一组值分成 4 个容器。我收到以下错误?如何解决这个问题我是Python初学者

python - 基于在 Pandas 中堆叠列来延长 DataFrame

python - 填写缺失的日期