我需要计算delta列(如下所示)。但棘手的是下面提到的条件。我怎样才能在熊猫身上做到这一点?
扬声器|视频|帧|时间|增量(预期)
--------|-------|-------|------|----------------
一| 1 | 0 | 10 | 0
一| 1 | 1 | 15 | 5
一个| 2 | 0 | 12 | 0
一个| 2 | 1 | 16 | 4
二| 2 | 0 | 19 | 0
二|二|一|二十二|三
二|二|二|十六|-6
条件:
Delta是同一个扬声器和同一个视频的帧之间的差异。换句话说,delta不应该针对不同的演讲者或不同的视频计算行。对于这些情况,该值应初始化为零,如delta(预期)列中所示。

最佳答案

让我们不要使用groupbydifffillna

df['delta'] = df.groupby(['speaker','video'])['time'].diff().fillna(0)

输出:
    speaker  video  frame  time  delta(expected)  delta
0  one           1      0    10                0    0.0
1  one           1      1    15                5    5.0
2  one           2      0    12                0    0.0
3  one           2      1    16                4    4.0
4  two           2      0    19                0    0.0
5  two           2      1    22                3    3.0
6  two           2      2    16               -6   -6.0

关于python - 如何在特定条件下在 Pandas 数据框行中找到增量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45423784/

10-12 17:43