我有一个数据框,其中包含按名称和日期排序的股票数据.我正在try 将KAMA(考夫曼自适应移动平均线)函数应用于每只股票.当我将其应用于新列时,该函数与df一起使用,但不与groupby一起使用.
下面是一些虚拟数据,以及我目前在木星上try 过的数据.它返回:TypeError:‘Series’对象是可变的,因此它们不能被散列
import numpy as np
import pandas as pd
import talib as tb
df = pd.DataFrame()
df['NAME'] = ['A','A','A','A','A','A','A','A','A','A','A','A','A','A','A','A','A','A','A',
'A','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B',
'B','B']
df['CLOSE'] = np.random.randint(1,100,df.shape[0])
df['NameNumber']=df.groupby('NAME').cumcount()
cols = ['NAME', 'NameNumber']
df['CN_PK'] = df[cols].apply(lambda row: '_'.join(row.values.astype(str)), axis=1)
close = df['CLOSE']
df['KAMA'] = tb.KAMA(close, timeperiod = 3)
df['GrpKAMA'] = df.groupby('NAME')['CLOSE'].apply(tb.KAMA(close,timeperiod = 3))
df.head(50)