является объектом np.float

уверен, что это уже самый быстрый метод или я делаю это неэффективно.

Я хочу горячо закодировать определенный категориальный столбец, который имеет 27k + возможных уровней. Столбец имеет разные значения в 2 разных наборах данных, поэтому я сначала объединил уровни перед использованием get_dummies ()

def hot_encode_column_in_both_datasets(column_name,df,df2,sparse=True):
    col1b = set(df2[column_name].unique())
    col1a = set(df[column_name].unique())
    combined_cats = list(col1a.union(col1b))
    df[column_name] = df[column_name].astype('category', categories=combined_cats)
    df2[column_name] = df2[column_name].astype('category', categories=combined_cats)

    df = pd.get_dummies(df, columns=[column_name],sparse=sparse)
    df2 = pd.get_dummies(df2, columns=[column_name],sparse=sparse)
    try:
        del df[column_name]
        del df2[column_name]
    except:
        pass
    return df,df2

Тем не менее, он работает более 2 часов, и он по-прежнему застрял горячее кодирование.

Могу ли я сделать что-то здесь неправильно? Или это просто характер запуска его на больших наборах данных?

Df имеет 6,8 млн строк и 27 столбцов, Df2 имеет 19990 строк и 27 столбцов перед горячим кодированием столбца, который я хотел.

Советы приветствуются, спасибо! :)

Ответы на вопрос(1)

Ваш ответ на вопрос