Python 将函数应用于dataframe列,同时考虑前几行的值
如何使用以下函数获取Python 将函数应用于dataframe列,同时考虑前几行的值,python,pandas,Python,Pandas,如何使用以下函数获取375ma中每20/xx个条目的值 df: 375ma NaN NaN NaN NaN 123 124 168 189 190 200 如果我这样做: def trendline(data, order=1): coeffs = np.polyfit(data.index.values, list(data), order) slope = coeffs[-2] return float(slope) 我在所有行中都得到相同的值 我可能可以使用
375ma
中每20/xx个条目的值
df:
375ma
NaN
NaN
NaN
NaN
123
124
168
189
190
200
如果我这样做:
def trendline(data, order=1):
coeffs = np.polyfit(data.index.values, list(data), order)
slope = coeffs[-2]
return float(slope)
我在所有行中都得到相同的值
我可能可以使用for
循环来执行此操作,是否有其他方法来执行此操作
编辑:
[-5:]
是这样的,函数可以查看375ma列前面的5个值
感谢IIUC,您需要在参数raw
设置为False
后使用和函数,以传递函数中的一系列信息,例如:
df['trend'] = trendline(df['375ma'][-5:])
[:-5]
的目的是什么?@Itay[-5::][/code>是使用前面的五个值。我试过你建议的申请。我得到TypeError:“float”对象不可下标
df['trend'] = df['375ma'].rolling(5).apply(trendline, raw=False)
print (df)
375ma trend
0 NaN NaN
1 NaN NaN
2 NaN NaN
3 NaN NaN
4 123.0 NaN
5 124.0 NaN
6 168.0 NaN
7 189.0 NaN
8 190.0 19.9
9 200.0 17.4