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

349
Views
¿Cómo agregar filas en una columna en función de valores repetidos en otra columna y finalmente mantener la primera fila en python?

Soy muy nuevo en el módulo de pandas de python.

Supongamos que tengo un marco de datos o una tabla de la siguiente manera:

 df = pd.DataFrame({ 'Column A': [12,12,12, 15, 16, 141, 141, 141, 141], 'Column B':['Apple' ,'Apple' ,'Apple' , 'Red', 'Blue', 'Yellow', 'Yellow', 'Yellow', 'Yellow'], 'Column C':[100, 50, np.nan , 23 , np.nan , 199 , np.nan , 1,np.nan] })

o tengo una tabla de datos de la siguiente manera:

 | Column A | Column B |Column C ----| -------- | ---------|-------- 0 | 12 | Apple |100 1 | 12 | Apple |50 2 | 12 | Apple |NaN 3 | 15 | Red |23 4 | 16 | Blue |NaN 5 | 141 | Yellow |199 6 | 141 | Yellow |NaN 7 | 141 | Yellow |1 8 | 141 | Yellow |NaN
  • Si se repiten los valores en la columna A, agregue los valores correspondientes en la columna C y pegue la suma en la nueva columna D (por ejemplo, hay 3 filas para 12, por lo tanto, debemos agregar los valores correspondientes 100 + 50 + NaN, y el resultado de la suma 150 debe almacenarse en la nueva columna D).

  • Si los valores de la columna A no se repiten, pegue directamente los valores de la columna C en la nueva columna D (como la fila 3), pero para NaN, debería ser 0 (como la fila 4).

¿Podría ayudarme a obtener un resultado como este en el cuaderno python jupyter:

 | Column A | Column B |Column C |Column D ----- | -------- | ---------|---------|--------- 0 | 12 | Apple |100 |150 1 | 15 | Red |23 |23 2 | 16 | Blue |NaN |0 3 | 141 | Yellow |199 |200
over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

df.groupby("Column A", as_index=False).agg(B=("Column B", "first"), C=("Column C", "first"), D=("Column C", "sum")) # Column ABCD # 0 12 Apple 100.0 150.0 # 1 15 Red 23.0 23.0 # 2 16 Blue NaN 0.0 # 3 141 Yellow 199.0 200.0
over 4 years ago · Santiago Trujillo Report

0

Aquí hay un enfoque

 df['Column D'] = df.groupby('Column A')['Column C'].transform('sum') df = df.drop_duplicates('Column A')

groupby('Column A') crea un grupo de filas para cada valor único en Column A . Luego ['Column C'].transform('sum') agrega los valores C para todas las filas en esos grupos.

Esta suma se guarda en la Columna D, y luego podemos eliminar los duplicados para quedarnos con el primero

Hay algunas suposiciones en esta solución. Agrupará los 12 valores en A incluso si no están uno detrás del otro, lo que puede o no ser lo que desea.

over 4 years ago · Santiago Trujillo Report

0

df = df.set_index(df['Column A']).drop('Column A', axis=1) df['Column D'] = df.groupby('Column A')['Column C'].sum() df = df.drop_duplicates(subset=['Column B'])
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!