Python 是否有一种方法可以根据数据帧中另一列的最后n行来查找行的值?
我希望为数据帧的每一行找到一个新列dev的值,以便: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] 最有效的方
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(),这可能有效。无论如何,非常感谢。