比较同一列python中的两个值

时间:2018-08-10 07:04:17

标签: python-3.x pandas dataframe

我正在尝试比较pandas dataframe的同一列中的两个值。
如果两个值不同,我想创建一个新值。 我的代码如下:

def f(x, var1, var2):
            if (x[var1].shift(1) != x[var1]):
                x[var2] = 1
            else:
                x[var2] = 0
            return x  

sdf['2008':'2009'].apply(lambda x: f(x, 'ROW1','ROW2'),axis = 1)

不幸的是,这个没有用。我得到以下错误消息

  

'numpy.float64'对象没有属性'shift'“,'发生在索引2008-01-01 00:00:00'

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我认为您需要:

df0 = df.shift()

df['Row2'] = np.where(df0['Row1']!=df['Row1'], 1, 0)

编辑

如@jpp在评论中所建议:

df['Row2'] = (df0['Row1']!=df['Row1']).astype(int)