является объектом 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 столбцов перед горячим кодированием столбца, который я хотел.
Советы приветствуются, спасибо! :)