我有一个像这样的数据框
colA colB
0 1 A
1 1 B
2 2 C
3 2 D
我希望比较colA中的对象和输出行,如果object<下一行中的对象。我可以在这样的
这样做for(int i=0;i<df[0];i++){
if(df[i][0]<df[i+1][0]){
for(int j=0;j<df[1];j++){
System.out.print(df[i][j]);
}
}
}
我想要的是colA [i]的行
colA colB
1 B
但我不知道如何用Python做到这一点?
答案 0 :(得分:1)
考虑以下方法:
In [85]: df[df.colA.diff(-1).lt(0)]
Out[85]:
colA colB
1 1 B
Series.diff(-1)返回当前值和下一个值之间的差异:
In [10]: df.colA.diff(-1)
Out[10]:
0 0.0
1 -1.0
2 0.0
3 NaN
Name: colA, dtype: float64
.diff()
返回先前值和当前值之间的差异:
In [9]: df.colA.diff()
Out[9]:
0 NaN
1 0.0
2 1.0
3 0.0
Name: colA, dtype: float64
lt(Val) - 是less than Val
:
In [13]: df.colA.lt(2)
Out[13]:
0 True
1 True
2 False
3 False
Name: colA, dtype: bool
与:
相同In [14]: df.colA < 2
Out[14]:
0 True
1 True
2 False
3 False
Name: colA, dtype: bool