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

375
Visualizações
Pandas: suma múltiples columnas en una columna sin la última columna

Si tengo un marco de datos similar a este

 Apples Bananas Grapes Kiwis 2 3 nan 1 1 3 7 nan nan nan 2 3

Me gustaría agregar una columna como esta

 Apples Bananas Grapes Kiwis Fruit Total 2 3 nan 1 6 1 3 7 nan 11 nan nan 2 3 5

Supongo que podría usar df['Apples'] + df['Bananas'] y así sucesivamente, pero mi marco de datos real es mucho más grande que esto. Esperaba que una fórmula como df['Fruit Total']=df[-4:-1].sum pudiera hacer el truco en una línea de código. Sin embargo, eso no funcionó. ¿Hay alguna forma de hacerlo sin resumir explícitamente todas las columnas?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Primero puede seleccionar por iloc y luego sum :

 df['Fruit Total']= df.iloc[:, -4:-1].sum(axis=1) print (df) Apples Bananas Grapes Kiwis Fruit Total 0 2.0 3.0 NaN 1.0 5.0 1 1.0 3.0 7.0 NaN 11.0 2 NaN NaN 2.0 3.0 2.0

Para sumar todas las columnas usan:

 df['Fruit Total']= df.sum(axis=1)
over 4 years ago · Santiago Trujillo Relatório

0

Esto puede ser útil para los principiantes, por lo que, en aras de la exhaustividad, si conoce los nombres de las columnas (por ejemplo, están en una lista), puede usar:

 column_names = ['Apples', 'Bananas', 'Grapes', 'Kiwis'] df['Fruit Total']= df[column_names].sum(axis=1)

Esto le brinda flexibilidad sobre qué columnas usar, ya que simplemente tiene que manipular la lista column_names y puede hacer cosas como seleccionar solo columnas con la letra 'a' en su nombre. Otro beneficio de esto es que es más fácil para los humanos entender lo que están haciendo a través de los nombres de las columnas. Combine esto con list(df.columns) para obtener los nombres de las columnas en formato de lista. Por lo tanto, si desea eliminar la última columna, todo lo que tiene que hacer es:

 column_names = list(df.columns) df['Fruit Total']= df[column_names[:-1]].sum(axis=1)
over 4 years ago · Santiago Trujillo Relatório

0

Es posible hacerlo sin saber el número de columnas e incluso sin iloc:

 print(df) Apples Bananas Grapes Kiwis 0 2.0 3.0 NaN 1.0 1 1.0 3.0 7.0 NaN 2 NaN NaN 2.0 3.0 cols_to_sum = df.columns[ : df.shape[1]-1] df['Fruit Total'] = df[cols_to_sum].sum(axis=1) print(df) Apples Bananas Grapes Kiwis Fruit Total 0 2.0 3.0 NaN 1.0 5.0 1 1.0 3.0 7.0 NaN 11.0 2 NaN NaN 2.0 3.0 5.0
over 4 years ago · Santiago Trujillo Relatório
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