У меня есть несколько столбцов, которые содержат строковые коды, которые я хочу превратить в уникальные категориальные числа.Что мне нужно для машинного обучения, где строки не могут быть использованы напрямую.
Часть, которая делает мою проблему немного более сложной, состоит в том, что мой набор данных разделен на отдельные фреймы данных, которые я хочу сохранить в концеобработки отдельно.
В прошлом мне удавалось преодолеть проблему для случая одного столбца, где строковые коды были в одном столбце.Приведенный ниже код помог мне сделать это:
# merge the different data frames as one by using dict
X=pd.concat(dict(enumerate([X_1, X_2, X_3, X_4, X_5, X_6, X_7, X_8, X_9, X_10])))
X=X.loc[:, X.columns.str.startswith('var1')+X.columns.str.startswith('var2(t-1)')] #keep all the var1 variables(RSRP) and only the last one from the Geohashses var2(t-1)
Geo_as_Category=pd.Series(X['var2(t-1)'], dtype="category") #turn Geohash to categorical
X['GeohashFeature']=Geo_as_Category.cat.codes
[X_1, X_2, X_3, X_4, X_5, X_6, X_7, X_8, X_9, X_10]=[d.xs(k) for k, d in X.groupby(level=0)]
, где диктат помог мне объединить различные фреймы данных в структуру, которая позже позволила бы мне также разделить их обратно.
Теперь моя проблема немного сложнее, так как строки кода разбиты на несколько столбцов, поэтому после объединения всех фреймов данных с
X=pd.concat(dict(enumerate([X_1, X_2, X_3, X_4, X_5, X_6, X_7, X_8, X_9, X_10])))
мне нужен способ, чтобы учесть все столбцы для построения уникальногокоды, а не просто один столбец, как я делал здесь
Geo_as_Category=pd.Series(X['var2(t-1)'], dtype="category")
X['GeohashFeature']=Geo_as_Category.cat.codes
Можете ли вы помочь мне придумать способ сделать это?
Большое спасибо, Алекс