Python 是否有一种方法可以根据数据帧中另一列的最后n行来查找行的值?

Python 是否有一种方法可以根据数据帧中另一列的最后n行来查找行的值?,python,pandas,dataframe,apply,Python,Pandas,Dataframe,Apply,我希望为数据帧的每一行找到一个新列dev的值,以便: n=100 slope=0.8 inv=3 for i in range(0,n): dev += math.pow(src[i] - (slope * (n - i) + inv), 2) 其中src是同一数据帧的列的前n个值的列表 因此,如果我的数据帧是: Index A 0 1 1 2 2 4 3 5 4 2 如果n的值为3,则索引为3的行的src将为: [4, 2, 1] 最有效的方

我希望为数据帧的每一行找到一个新列dev的值,以便:

n=100
slope=0.8
inv=3
for i in range(0,n):
   dev += math.pow(src[i] - (slope * (n - i) + inv), 2)
其中src是同一数据帧的列的前n个值的列表

因此,如果我的数据帧是:

Index A
0     1
1     2
2     4
3     5
4     2
如果n的值为3,则索引为3的行的src将为:

[4, 2, 1]

最有效的方法是什么?

您好,万能先生。你是说像这样的事吗

df['dev'] = 0 ##Create a column dev with dummy values

for idx in df.index: #interating on the indexes
    dev = 0
    for i in range(n+1): #interating on the n values
        if idx >= i:
            print(idx, '-', i, '=', idx-i) #idx - i is the values above the index
            dev += np.power(df.loc[idx-i]['A'] - (slope * (n - i) + inv), 2)
        elif idx < i:
            print('No rows above.') #There will be values idx-i < 0 of which are not valid indexes for our df
            pass        
    df['dev'][idx] = dev #Here I'm setting each dev value obtained after n+1 interations,i.e., n values above
df['dev']=0##使用伪值创建列dev
对于df.index中的idx:#在索引上交互
dev=0
对于范围(n+1)内的i:#在n个值上交互
如果idx>=i:
print(idx,'-',i,'=',idx-i)#idx-i是索引上方的值
dev+=np.power(df.loc[idx-i]['A']-(斜率*(n-i)+inv),2)
elif idx
hi,公式中的
x
是什么?如果是
i
?这可能会对您有所帮助:虽然这是正确的,但我想知道是否有一个更少的迭代过程来完成这项工作,可能是通过使用内置函数。另一个用户建议使用rolling.apply(),这可能有效。无论如何,非常感谢。