熊猫:遍历两个不同的列

时间:2019-04-23 17:27:40

标签: python pandas

我的数据框如下:

    price   time
0   1    2019-04-11 03:01:53.488000
1   0    2019-04-11 03:27:25.768000
2   1    2019-04-11 03:34:20.520000
3   0    2019-04-11 03:36:16.556000

我需要做的是,当列price等于0时,取列time中同一行的值,并将其与列{{1}中的值进行比较},当价格为1时。

在我的示例中,将类似于:

time

有什么想法如何基于两个不同的列进行迭代?我有点卡住了!谢谢

1 个答案:

答案 0 :(得分:3)

您可以将df.price.eq(1).cumsum()分组,因为您说模式始终为1-0-1-0

u = df.groupby(df.price.eq(1).cumsum())['time'].diff()
df.assign(time_diff=u)

   price                    time       time_diff
0      1 2019-04-11 03:01:53.488             NaT
1      0 2019-04-11 03:27:25.768 00:25:32.280000
2      1 2019-04-11 03:34:20.520             NaT
3      0 2019-04-11 03:36:16.556 00:01:56.036000