【发布时间】:2015-08-20 19:09:34
【问题描述】:
我有一个这样的数据框
d={}
d['z']=['Q8','Q8','Q7','Q9','Q9']
d['t']=['10:30','10:31','10:38','10:40','10:41']
d['qty']=[20,20,9,12,12]
我想比较第一行和第二行
- 与下一行的数量相同并且
- 在下一行大于 t 并且
- z 值是否与下一行相同
想要的值是
qty t z valid
0 20 2015-06-05 10:30:00 Q8 False
1 20 2015-06-05 10:31:00 Q8 True
2 9 2015-06-05 10:38:00 Q7 False
3 12 2015-06-05 10:40:00 Q9 False
4 12 2015-06-05 10:41:00 Q9 True
【问题讨论】:
-
你没有说明当你的条件是
True时该怎么做,也发布你想要的df以避免歧义 -
同样在您的示例 df 中,没有列“z”与下一行相同的行
-
更新了原帖
-
你的规则和你想要的输出冲突。第 0 行显然应该是 True。您已将第 1 行设置为 True,但第 2 行具有不同的 z 和不同的数量,因此第 1 行应为 False。看来您不是在与下一行进行比较,而是与上一行进行比较。
标签: python pandas dataframe time-series