Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将值与数据帧中的上一行进行比较_Python_Pandas - Fatal编程技术网

Python 将值与数据帧中的上一行进行比较

Python 将值与数据帧中的上一行进行比较,python,pandas,Python,Pandas,我有下面的DataFrame,我想创建另一列来比较col1的前一行,看看该行的值是否大于前一行的值。结果应该是这样的: import pandas as pd data={'col1':[1,3,3,1,2,3,2,2]} df=pd.DataFrame(data,columns=['col1']) print df col1 0 1 1 3 2 3 3 1 4

我有下面的DataFrame,我想创建另一列来比较col1的前一行,看看该行的值是否大于前一行的值。结果应该是这样的:

import pandas as pd
data={'col1':[1,3,3,1,2,3,2,2]}
df=pd.DataFrame(data,columns=['col1'])
print df


     col1  
0     1          
1     3          
2     3          
3     1          
4     2          
5     3          
6     2          
7     2      
谢谢。

通过和比较移位值,最后缺失的值将替换为
-1
,如果
为真
,则有效,如果所有值均为正值:

    col1  match  
0     1   False     
1     3   False     
2     3   True     
3     1   False     
4     2   False     
5     3   True     
6     2   False     
7     2   True 
如果需要为任何数据帧将最后一个值设置为
True

df['match'] = df['col1'].gt(df['col1'].shift(-1, fill_value=-1))
print (df)

   col1  match
0     1  False
1     3  False
2     3   True
3     1  False
4     2  False
5     3   True
6     2  False
7     2   True

它是否仅适用于
gt
?或者操作员
=
也可以工作?谢谢您的及时回复。这里的另一个快速问题是:如果要将行值与自定义操作进行比较,该怎么办?如果一行的值比前一行的值大20%,则说打印“True”?@adirabargil-gt类似于
,因为
=>
被使用
ge
@NovaPoi-20%是否需要从值中提取20%并进行比较?不明白,我想这应该是个新问题。@NovaPoi-或者需要
df['match']=df['col1'].gt(df['col1'].mul(0.2).shift(-1,fill_value=-1))
df['match'] = df['col1'].gt(df['col1'].shift(-1))
df.loc[df.index[-1], 'match'] = True