Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

365
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!