¿Cómo realizar una función SUMIF en Pandas?

La función sumif() se usa para realizar la operación de suma por un grupo de elementos en el marco de datos. Se puede aplicar en columnas únicas y múltiples y también podemos usar esta función con la función groupby .

Método 1: SUMAR.SI en todas las columnas con groupby()

Esta función se utiliza para mostrar la suma de todas las columnas con respecto a la columna agrupada

Sintaxis: dataframe.groupby(‘group_column’).sum()

dónde

  • dataframe es el dataframe de entrada
  • group_column es la columna en el marco de datos que se agrupará
  • La función sum() es realizar la operación de suma

Crea el marco de datos del estudiante con 4 columnas.

Python3

# import pandas module
import pandas as pd
  
# create dataframe with 4 columns
data = pd.DataFrame({
  
    "name": ['sravan', 'jyothika', 'harsha', 
             'ramya', 'sravan', 'jyothika', 
             'harsha', 'ramya', 'sravan', 'jyothika',
             'harsha', 'ramya'],
    "subjects": ['java', 'java', 'java', 'python',
                 'python', 'python', 'html/php', 
                 'html/php', 'html/php', 'php/js',
                 'php/js', 'php/js'],
    "internal marks": [98, 79, 89, 97, 82, 98, 90,
                       87, 78, 89, 93, 94],
    "external marks": [88, 71, 89, 97, 82, 98, 80,
                       87, 71, 89, 92, 64],
})
  
# display dataframe
print(data)

Salida :

Realice la suma de todas las columnas agrupando una columna en particular

Python3

# import pandas module
import pandas as pd
  
# create dataframe with 4 columns
data = pd.DataFrame({
  
    "name": ['sravan', 'jyothika', 'harsha', 'ramya',
             'sravan', 'jyothika', 'harsha', 'ramya',
             'sravan', 'jyothika', 'harsha', 'ramya'],
    "subjects": ['java', 'java', 'java', 'python',
                 'python', 'python', 'html/php',
                 'html/php', 'html/php', 'php/js',
                 'php/js', 'php/js'],
    "internal marks": [98, 79, 89, 97, 82, 98, 90,
                       87, 78, 89, 93, 94],
    "external marks": [88, 71, 89, 97, 82, 98, 80,
                       87, 71, 89, 92, 64],
})
  
# find sum of all columns group by name
print(data.groupby('name').sum())
  
  
# find sum of all columns group by subjects
print(data.groupby('subjects').sum())

Producción:

Método 2: función SUMAR.SI en una columna

Aquí estamos realizando la operación sumif en una columna en particular agrupándola con una columna

Sintaxis: dataframe.groupby(‘group_column’)[‘column_name].sum()

dónde

  • dataframe es el dataframe de entrada
  • group_column es la columna en el marco de datos que se agrupará
  • column_name es obtener la suma de esta columna con respecto a la columna agrupada
  • La función sum() es realizar la operación de suma

Python3

# import pandas module
import pandas as pd
  
# create dataframe with 4 columns
data = pd.DataFrame({
  
    "name": ['sravan', 'jyothika', 'harsha', 'ramya',
             'sravan', 'jyothika', 'harsha', 'ramya', 
             'sravan', 'jyothika', 'harsha', 'ramya'],
    "subjects": ['java', 'java', 'java', 'python',
                 'python', 'python', 'html/php', 
                 'html/php', 'html/php', 'php/js',
                 'php/js', 'php/js'],
    "internal marks": [98, 79, 89, 97, 82, 98, 90,
                       87, 78, 89, 93, 94],
    "external marks": [88, 71, 89, 97, 82, 98, 80,
                       87, 71, 89, 92, 64],
})
  
# find sum of  columns group by
# name with internal marks column
print(data.groupby('name')['internal marks'].sum())
  
print("---------------")
  
# find sum of  columns group by
# name with external marks column
print(data.groupby('name')['external marks'].sum())
  
print("---------------")
  
# find sum of  columns group by
# subjects with internal marks column
print(data.groupby('subjects')['internal marks'].sum())
  
print("---------------")
  
# find sum of  columns group by
# subjects with external marks column
print(data.groupby('subjects')['external marks'].sum())

Producción:

Método 3: Operación SUMAR.SI en múltiples columnas 

Aquí usaremos la operación sumif en varias columnas.

Sintaxis: dataframe.groupby(‘group_column’)[[‘column_names’]].sum()

dónde,

  • dataframe es el dataframe de entrada
  • group_column es la columna en el marco de datos que se agrupará
  • column_names son para obtener la suma de estas columnas con respecto a la columna agrupada
  • La función sum() es realizar la operación de suma

Python3

# import pandas module
import pandas as pd
  
# create dataframe with 4 columns
data = pd.DataFrame({
  
    "name": ['sravan', 'jyothika', 'harsha', 'ramya',
             'sravan', 'jyothika', 'harsha', 'ramya', 
             'sravan', 'jyothika', 'harsha', 'ramya'],
    "subjects": ['java', 'java', 'java', 'python',
                 'python', 'python', 'html/php', 
                 'html/php', 'html/php', 'php/js', 
                 'php/js', 'php/js'],
    "internal marks": [98, 79, 89, 97, 82, 98, 90,
                       87, 78, 89, 93, 94],
    "external marks": [88, 71, 89, 97, 82, 98, 80,
                       87, 71, 89, 92, 64],
})
  
# find sum of  columns group by name with
# external marks and internal marks column
print(data.groupby('name')[['external marks',
                            'internal marks']].sum())
  
print("---------------")
  
# find sum of  columns group by subjects
# with external marks and internal marks column
print(data.groupby('subjects')[['external marks',
                                'internal marks']].sum())

Producción:

Publicación traducida automáticamente

Artículo escrito por sravankumar8128 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *