Aplicar una función a columnas o filas individuales o seleccionadas en Pandas Dataframe

En este artículo, aprenderemos diferentes formas de aplicar una función a columnas o filas individuales o seleccionadas en Dataframe. Usaremos el método Dataframe/series.apply() para aplicar una función.

Sintaxis: Dataframe/series.apply(func, convert_dtype=True, args=())

Parámetros: Este método tomará los siguientes parámetros:
func: Toma una función y la aplica a todos los valores de la serie pandas.
convert_dtype: convierte dtype según la operación de la función.
args=(): Argumentos adicionales para pasar a función en lugar de serie.

Tipo de retorno: Serie Pandas después de la función/operación aplicada.

Método 1: Usar Dataframe.apply()y lambda function.
Ejemplo 1: para columna

# import pandas and numpy library
import pandas as pd
import numpy as np
  
# List of Tuples
matrix = [(1, 2, 3),
          (4, 5, 6),
          (7, 8, 9)
         ]
  
# Create a DataFrame object
df = pd.DataFrame(matrix, columns = list('xyz'), 
                  index = list('abc'))
  
# Apply function numpy.square() to lambda
# to find the squares of the values of 
# column whose column name is 'z'
new_df = df.apply(lambda x: np.square(x) if x.name == 'z' else x)
  
# Output
new_df

Producción :
dataframe

Ejemplo 2: Para Fila.

# import pandas and numpy library
import pandas as pd
import numpy as np
# List of Tuples
matrix = [(1, 2, 3),
          (4, 5, 6),
          (7, 8, 9)
         ]
  
# Create a DataFrame object
df = pd.DataFrame(matrix, columns = list('xyz'), 
                   index = list('abc'))
  
# Apply function numpy.square() to lambda 
# to find the squares of the values of row
# whose row index is 'b'
new_df = df.apply(lambda x: np.square(x) if x.name == 'b' else x, 
                axis = 1)
  
# Output
new_df

Producción :
dataframe-2

Método 2: Uso del Dataframe/series.apply()operador & [ ].

Ejemplo 1: Para Columna.

# import pandas and numpy library
import pandas as pd
import numpy as np
  
# List of Tuples
matrix = [(1, 2, 3),
          (4, 5, 6),
          (7, 8, 9)
         ]
  
# Create a DataFrame object
df = pd.DataFrame(matrix, columns = list('xyz'), 
                   index = list('abc'))
  
# Apply a function to one column 'z'
# and assign it back to the same column 
df['z'] = df['z'].apply(np.square)
  
# Output
df

Producción :
dataframe

Ejemplo 2: Para Fila.

# import pandas and numpy library
import pandas as pd
import numpy as np
  
# List of Tuples
matrix = [(1, 2, 3),
          (4, 5, 6),
          (7, 8, 9)
         ]
  
# Create a DataFrame object
df = pd.DataFrame(matrix, columns = list('xyz'), 
                  index = list('abc'))
  
# Apply a function to one row 'b' 
# and assign it back to the same row 
df.loc['b'] = df.loc['b'].apply(np.square)
  
# Output
df

Producción :
dataframe-2

Método 3: Usar numpy.square()método y [ ]operador.
Ejemplo 1: para columna

# import pandas and numpy library
import pandas as pd
import numpy as np
  
# List of Tuples
matrix = [(1, 2, 3),
          (4, 5, 6),
          (7, 8, 9)
         ]
  
# Create a DataFrame object
df = pd.DataFrame(matrix, columns = list('xyz'), 
                  index = list('abc'))
  
# Apply a function to one column 'z' and 
# assign it back to the same column 
df['z'] = np.square(df['z'])
  
# Output
print(df)

Producción :
dataframe

Ejemplo 2: Para Fila.

# import pandas and numpy library
import pandas as pd
import numpy as np
  
# List of Tuples
matrix = [(1, 2, 3),
          (4, 5, 6),
          (7, 8, 9)
         ]
  
# Create a DataFrame object
df = pd.DataFrame(matrix, columns = list('xyz'), index = list('abc'))
  
# Apply a function to one row 'b' and 
# assign it back to the same row
df.loc['b'] = np.square(df.loc['b'])
  
# Output
df

Producción :
dataframe-2

También podemos aplicar una función a más de una columna o fila en el marco de datos.

Ejemplo 1: para columna

# import pandas and numpy library
import pandas as pd
import numpy as np
  
# List of Tuples
matrix = [(1, 2, 3),
          (4, 5, 6),
          (7, 8, 9)
         ]
  
# Create a DataFrame object
df = pd.DataFrame(matrix, columns = list('xyz'), 
                  index = list('abc'))
  
# Apply function numpy.square() 
# for square the values of
# two columns 'x' and 'y' 
new_df = df.apply(lambda x: np.square(x) if x.name in ['x', 'y'] else x)
  
# Output
new_df

Producción :
dataframe-2

Ejemplo 2: Para Fila.

# import pandas and numpy library
import pandas as pd
import numpy as np
  
# List of Tuples
matrix = [(1, 2, 3),
          (4, 5, 6),
          (7, 8, 9)
         ]
  
# Create a DataFrame object
df = pd.DataFrame(matrix, columns = list('xyz'),
                  index = list('abc'))
  
# Apply function numpy.square() to 
# square the values of two rows 
# 'b' and 'c'
new_df = df.apply(lambda x: np.square(x) if x.name in ['b', 'c'] else x,
                 axis = 1)
  
# Output
new_df

Producción :
dataframe-1

Publicación traducida automáticamente

Artículo escrito por ankthon 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 *