Установка dtypes по строке, содержащейся в имени столбца - PullRequest
0 голосов
/ 28 сентября 2019

У меня есть большой DataFrame со слишком большим количеством функций, чтобы идти один за другим, выбирая их dtype.Но многие столбцы имеют похожие имена, поэтому я просмотрел и организовал списки ключевых слов, которые, как мне известно, содержатся в именах столбцов.

Таким образом, у каждого dtype есть список ключевых слов (т.е. числовой = ['test1 ',' test2 '], потому что многие числовые столбцы содержат одну из этих строк. Я также делаю то же самое для столбцов, которые я хочу отбросить и запустить в первую очередь, что не вызывает проблем (сначала я запускаю его, поэтому могу вменять значения без полученияошибка за попытку вменения с помощью Нана).

Вот что у меня есть:

def order_columns(results):
    results_df_temp = results.loc[:, results.columns]

    # Dropped columns
    for col in results_df_temp:
        for d in drop:
            if d in str(col):
                results_df_temp.drop(columns=col, axis=1, inplace=True)
            results_df_temp = results_df_temp[results_df_temp.columns.drop(list(results_df_temp.filter(regex=d)))]

    # Numerical/Ordinal/Categorical Columns
    for col in results_df_temp:

        # Numerical
        for n in numerical:
            if n in str(col):
                results_df_temp.fillna(results_df_temp[col].median(), axis=1, inplace=True) # fill median for numerical
                results_df_temp[col] = results_df_temp[col].astype('float')

        # Ordinal
        for o in ordinal:
            if o in str(col):
                results_df_temp.fillna(results_df_temp[col].mode(), axis=1, inplace=True) # fill mode for ordinal
                results_df_temp[col] = results_df_temp[col].astype('int')

        # Categorical
        for c in categorical:
            if c in str(col):
                results_df_temp.fillna(results_df_temp[col].mode(), axis=1, inplace=True) # fill mode for categorical
                results_df_temp[col] = results_df_temp[col].astype('category')

    return results_df_temp

Я получаю ошибку "Недопустимый литерал для int () с основанием 10:", а затемэто дает название категорической функции, но я не могу понять, что не так с этим кодом

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