TypeError: аргумент float () должен быть строкой или числом, а не «методом» - регрессия с несколькими переменными - PullRequest
0 голосов
/ 07 декабря 2018

Я получаю сообщение об ошибке: Аргумент TypeError: float () должен быть строкой или числом, а не «методом».Ниже приведен мой фрагмент кода.

Я проверил другие сообщения, подобные этой: TypeError: аргумент float () должен быть строкой или числом, а не «функцией» - Python / Sklearn но, похоже, не может найти причину ошибки.Питон говорит, что мои переменные (y, x1, x2 и т. Д.) Являются «методами», и именно поэтому я получаю сообщение об ошибке?

Если так, кто-нибудь знает, как я могу решить эту проблему?Заранее спасибо всем, кто может мне помочь!

# Replace inf and NaNs

df_raw['daily pct return']= df_raw['daily pct return'].replace([np.inf, -np.inf],np.nan).dropna
df_raw = pd.DataFrame(data=df_raw)
df_raw.to_csv('Raw_final.csv', header=True)


y = (df_raw['daily pct return'].shift(periods=1)).astype(float)
x1 = (df_raw['Excess daily return']).astype(float)
x2 = (df_raw['Excess weekly return']).astype(float)
x3 = (df_raw['Excess monthly return']).astype(float)
x4 = (df_raw['Trading vol / mkt cap']).astype(float)
x5 = (df_raw['Std dev']).astype(float)
x6 = (df_raw['Residual risk']).astype(float)

result = smf.OLS(exog=y, endog=[x1, x2, x3, x4, x5, x6]).fit()
print(result.params)
print(result.summary())

1 Ответ

0 голосов
/ 07 декабря 2018

Опечатка:

df_raw['daily pct return'] = df_raw['daily pct return'].replace(...).dropna()

В самом первом утверждении вашего кода вы присваиваете столбцу 'daily pct return' метод dropnadataframe.Вы, вероятно, хотите, чтобы он был результатом метода.Для этого просто добавьте пару скобок в конец оператора, чтобы интерпретатор понимал, что вы вызываете метод для использования его вывода, а не ссылаетесь на сам метод как на объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...