Ошибка типа: неподдерживаемые типы операндов для /: 'str' и 'int' --- для столбца в X_train.columns: - PullRequest
0 голосов
/ 17 апреля 2020

Я продолжаю сталкиваться с этой проблемой в своем коде, ошибка заключается в жирных линиях. Я не могу понять разрешение. Сценарий содержит около 250 строк кода, поэтому, очевидно, я не смог бы опубликовать здесь весь код, который может помешать любому, кто пытается помочь ... заранее спасибо - я все еще начинающий программист, кстати


loans = pd.read_csv(r'C:\Users\train\Downloads\accepted-200000-new.csv',low_memory=True)

.....(more preprocessing code)


loans_train = loans.loc[loans['issue_d'] <  loans['issue_d'].quantile(0.9)]
loans_test =  loans.loc[loans['issue_d'] >= loans['issue_d'].quantile(0.9)]

loans_test.shape[0] / loans.shape[0]

loans_train.drop('issue_d', axis=1, inplace=True)
loans_test.drop('issue_d', axis=1, inplace=True)

y_train = loans_train['charged_off']
y_test = loans_test['charged_off']

X_train = loans_train.drop('charged_off', axis=1)
X_test = loans_test.drop('charged_off', axis=1)

del loans_train, loans_test

linear_dep = pd.DataFrame()

**for col in X_train.columns:
    linear_dep.loc[col, 'pearson_corr'] = X_train[col].corr(y_train)
linear_dep['abs_pearson_corr'] = abs(linear_dep['pearson_corr'])**

from sklearn.feature_selection import f_classif
for col in X_train.columns:
    mask = X_train[col].notnull()
    (linear_dep.loc[col, 'F'], linear_dep.loc[col, 'p_value']) = f_classif(pd.DataFrame(X_train.loc[mask, col]), y_train.loc[mask])

linear_dep.sort_values('abs_pearson_corr', ascending=False, inplace=True)
linear_dep.drop('abs_pearson_corr', axis=1, inplace=True)

linear_dep.reset_index(inplace=True)
linear_dep.rename(columns={'index':'variable'}, inplace=True)

1 Ответ

0 голосов
/ 17 апреля 2020

Почему бы не проверить с помощью X_train.dtypes - он покажет вам точно, какие типы данных для ваших столбцов.

И чтобы быть в безопасности, вы можете просто сделать: X_train[col].astype(int).corr(y_train) - но, так как вы выполняя его по всем столбцам, обязательно используйте try, потому что у вас могут быть столбцы, которые являются чисто строковыми, и в любом случае их следует опускать!

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