[英]Getting previous row values from within pandas apply() function
import pandas as pd
def greater_or_less(d):
if d['current'] > d['previous']:
d['result']="Greater"
elif d['current'] < d['previous']:
d['result']="Less"
elif d['current'] == d['previous']:
d['result']="Equal"
else:
pass
return d
df=pd.DataFrame({'current':[1,2,2,8,7]})
# Duplicate the column with shifted values
df['previous']=df['current'].shift(1)
df['result']=""
df=df.apply(greater_or_less,axis=1)
结果是:
current previous result
1 NaN
2 1 Greater
2 2 Equal
8 2 Greater
7 8 Less
然后,我会删除previous
专栏,因为它不再需要了。 结束时:
current result
1
2 Greater
2 Equal
8 Greater
7 Less
如何在不添加额外列的情况下执行此操作?
我想做的是知道如何从greater_or_less
函数中引用前一行的值。
使用diff()
方法:
import pandas as pd
import numpy as np
df=pd.DataFrame({'current':[1,2,2,8,7]})
np.sign(df.current.diff()).map({1:"Greater", 0:"Equal", -1:"Less"})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.