首页 > 解决方案 > 在 pandas Dataframe 函数中使用 shift 函数

问题描述

我想创建一个函数来比较 Pandas 数据框中的不同行。
我当前的功能如下所示:

def f(row):
    if row['A'].shift(1) == row['B']:
        val = 0        
    else:
        val = 1
    return val

我收到以下错误消息:

AttributeError: ("'numpy.float64' object has no attribute 'shift'", 'occurred at index 2006-02-28 00:00:00')

我知道问题出现在数据帧的第一行,因为没有可以移动的行。有谁知道如何重写功能?任何帮助表示赞赏。

标签: pythonpandasdataframe

解决方案


有了pandas你就可以。

(~(df.A.shift()==df.B)).astype(int) # since default of shift is 1 

推荐阅读