Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

185
Visualizações
Conservar el orden de las columnas después de aplicar sklearn.compose.ColumnTransformer

Estoy usando los módulos Pipeline y ColumnTransformer de la biblioteca sklearn para realizar la ingeniería de funciones en mi conjunto de datos.

El conjunto de datos inicialmente se ve así:

fecha núm_bloque_fecha tienda_id Identificación del artículo precio del articulo
02.01.2013 0 59 22154 999.00
03.01.2013 0 25 2552 899.00
05.01.2013 0 25 2552 899.00
06.01.2013 0 25 2554 1709.05
15.01.2013 0 25 2555 1099.00
 $> data.info() <class 'pandas.core.frame.DataFrame'> RangeIndex: 2935849 entries, 0 to 2935848 Data columns (total 6 columns): # Column Dtype --- ------ ----- 0 date object 1 date_block_num object 2 shop_id object 3 item_id object 4 item_price float64 dtypes: float64(2), int64(3), object(1) memory usage: 134.4+ MB

Entonces tengo las siguientes transformaciones:

 num_column_transformer = ColumnTransformer( transformers=[ ("std_scaler", StandardScaler(), make_column_selector(dtype_include=np.number)), ], remainder="passthrough" ) num_pipeline = Pipeline( steps=[ ("percent_item_cnt_day_per_shop", PercentOverTotalAttributeWholeAdder( attribute_percent_name="shop_id", attribute_total_name="item_cnt_day", new_attribute_name="%_item_cnt_day_per_shop") ), ("percent_item_cnt_day_per_item", PercentOverTotalAttributeWholeAdder( attribute_percent_name="item_id", attribute_total_name="item_cnt_day", new_attribute_name="%_item_cnt_day_per_item") ), ("percent_sales_per_shop", SalesPerAttributeOverTotalSalesAdder( attribute_percent_name="shop_id", new_attribute_name="%_sales_per_shop") ), ("percent_sales_per_item", SalesPerAttributeOverTotalSalesAdder( attribute_percent_name="item_id", new_attribute_name="%_sales_per_item") ), ("num_column_transformer", num_column_transformer), ] )

Los primeros cuatro Transformers crean cuatro nuevas variables numéricas diferentes y el último aplica StandardScaler sobre todos los valores numéricos del conjunto de datos.

Después de ejecutarlo, obtengo los siguientes datos:

0 1 2 3 4 5 6 7 8
-0.092652 -0.765612 -0.173122 -0.756606 -0.379775 02.01.2013 0 59 22154
-0.092652 1.557684 -0.175922 1.563224 -0.394319 03.01.2013 0 25 2552
-0.856351 1.557684 -0.175922 1.563224 -0.394319 05.01.2013 0 25 2552
-0.092652 1.557684 -0.17613 1.563224 -0.396646 06.01.2013 0 25 2554
-0.092652 1.557684 -0.173278 1.563224 -0.380647 15.01.2013 0 25 2555

Me gustaría tener el siguiente resultado:

fecha núm_bloque_fecha tienda_id Identificación del artículo precio del articulo %_item_cnt_day_per_shop %_item_cnt_day_per_item %_ventas_por_tienda %_ventas_por_artículo
02.01.2013 0 59 22154 -0.092652 -0.765612 -0.173122 -0.756606 -0.379775
03.01.2013 0 25 2552 -0.092652 1.557684 -0.175922 1.563224 -0.394319
05.01.2013 0 25 2552 -0.856351 1.557684 -0.175922 1.563224 -0.394319
06.01.2013 0 25 2554 -0.092652 1.557684 -0.17613 1.563224 -0.396646
15.01.2013 0 25 2555 -0.092652 1.557684 -0.173278 1.563224 -0.380647

Como puede ver, las columnas 5 , 6 , 7 y 8 de la salida corresponden a las primeras cuatro columnas del conjunto de datos original. Por ejemplo, no sé dónde se encuentra la función item_price en la tabla de salida.

  1. ¿Cómo podría preservar el orden de las columnas y los nombres? Después de eso, quiero hacer ingeniería de características sobre variables categóricas y mis Transformers hacen uso del nombre de la columna de características.
  2. ¿Estoy usando correctamente la API de Scikit-Learn?
over 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda