熊猫:如何在连续行后屏蔽第一行?

时间:2016-10-22 09:34:41

标签: python pandas

给出像

这样的Pandas数据框
ID     VALUE
1      false
2      true
3      false
4      false
5      false
6      true
7      true
8      true
9      false

对于一组真值

之后的下一行,结果应为true
ID     RESULT
1      false
2      false
3      true
4      false
5      false
6      false
7      false
8      false
9      true

如何在熊猫中实现这一目标?

3 个答案:

答案 0 :(得分:2)

您可以检查diff()列的VALUE结果是否等于-1:

df.VALUE.astype(int).diff() == -1

#0    False
#1    False
#2     True
#3    False
#4    False
#5    False
#6    False
#7    False
#8     True
#Name: VALUE, dtype: bool

答案 1 :(得分:1)

您可以将这些值与偏移版本进行比较,以找出真实之后新假设的位置:

>>> df['VALUE'] = df['VALUE'].astype('bool')
>>> (~df['VALUE'] & df['VALUE'].shift())

0    False
1    False
2     True
3    False
4    False
5    False
6    False
7    False
8     True
Name: VALUE, dtype: bool

答案 2 :(得分:0)

Before changes: 
  values
0  false
1   true
2  false
3  false
4  false
5   true
6   true
7   true
8  false


After changes: 
  values
0  false
1  false
2   true
3  false
4  false
5  false
6  false
7  false
8   true

结果:

{{1}}