从另一个函数调用一个函数时出现以下错误:
TypeError: 'GLMResultsWrapper' object is not callable
我在下面的coeffs = model_results(model_results)
行看到错误。
这是另一个在table_to_graph
函数外部运行无错误的函数。 model_results函数从statsmodel
模型获取摘要输出,并将其放入数据框。
table_to_graph函数将该数据框连接到另一个表,该表是输入中的df
。 table_to_graph函数如下。
最终功能如下:
# Add into table generation table
def table_to_graph(model_results, df):
'''
#function that combines rating tables and model summary
'''
coeffs = model_results(model_results)
try:
df['key'] = df['variable']+"_"+df['level']
df = pd.merge(df, coeffs, left_on = 'key', right_on = 'index', how = 'left')
df['factor'] = np.exp(df[factor])
df['factor'].fillna(1, inplace = True)
df['error_up'] = np.exp(df[error_up])
df['error_down'] = np.exp(df[error_down])
#title2 = title1
df = df[['model', 'variable', 'level', 'total_incurred', 'total_count', 'cmeu', 'factor', 'error_up', 'error_down'
, 'pricing_model_1_p_values']]
return df
#df1 = df1.append(df)
except:
#df['level'] = df['level'].astype('str')
df['key'] = df['variable']+"_"+df['level'].astype('str')
df['level'] = df['level'].astype('int')
df = pd.merge(df, coeffs, left_on = 'key', right_on = 'index', how = 'left')
df['factor'] = np.exp(df[factor])
df['factor'].fillna(1, inplace = True)
df['error_up'] = np.exp(df[error_up])
df['error_down'] = np.exp(df[error_down])
df = df[['model', 'variable', 'level', 'total_incurred', 'total_count', 'cmeu', 'factor', 'error_up'
, 'error_down', 'pricing_model_1_p_values']]
#df1 = df1.append(df)
return df
model_results函数如下:
def model_results(model_results):
'''
function that puts model parameters into a data frame
'''
df = pd.DataFrame(model_results.params, columns = ['factor'])
df['error_down'] = model_results.conf_int()[0]
df['error_up'] = model_results.conf_int()[1]
df['standard_error'] = model_results.bse
df['pvalues'] = round(model_results.pvalues, 3)
df.reset_index(inplace = True)
return df
答案 0 :(得分:1)
问题在于您不是在调用您定义为model_results的函数,而是在model_results数据上“调用” model_results数据。这就是为什么您会收到该对象不可调用的错误的原因。
将函数名称或model_results数据的名称更改为其他名称,这将允许python在两者之间进行区分并执行您想要的操作。在model_results 数据上称为函数 model_results。