Hay diferentes formas de aplicar una función a cada fila o columna en DataFrame. Aprenderemos sobre varias formas en esta publicación. Primero creemos un marco de datos pequeño y veamos eso.
Python3
# 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,10,11,12), (13,14,15,16) ] # Create a Dataframe object df = pd.DataFrame(matrix, columns = list('abcd')) # Output df
Producción :
Método 1: Aplicar la función lambda a cada fila/columna.
Ejemplo 1: para columna
Python3
# 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,10,11,12), (13,14,15,16) ] # Create a Dataframe object df = pd.DataFrame(matrix, columns = list('abcd')) # Applying a lambda function to each # column which will add 10 to the value new_df = df.apply(lambda x : x + 10) # Output new_df
Producción :
Ejemplo 2: Para Fila
Python3
# 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,10,11,12), (13,14,15,16) ] # Creating a Dataframe object df = pd.DataFrame(matrix, columns = list('abcd')) # Applying a lambda function to each # row which will add 5 to the value new_df = df.apply(lambda x: x + 5, axis = 1) # Output new_df
Producción :
Método 2: Aplicar la función definida por el usuario a cada fila/columna
Ejemplo 1: Para columna
Python3
# function to returns x*x def squareData(x): return x * x # import pandas and numpy packages import pandas as pd import numpy as np # list of tuples matrix = [(1,2,3,4), (5,6,7,8,), (9,10,11,12), (13,14,15,16) ] # Creating a Dataframe object df = pd.DataFrame(matrix, columns = list('abcd')) # Applying a user defined function to # each column that will square the given # value new_df = df.apply(squareData) # Output new_df
Producción :
Ejemplo 2: Para Fila
Python3
# function to returns x*X def squareData(x): return x * x # 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,10,11,12), (13,14,15,16) ] # Creating a Dataframe object df = pd.DataFrame(matrix, columns = list('abcd')) # Applying a user defined function # to each row that will square the given value new_df = df.apply(squareData, axis = 1) # Output new_df
Producción :
En los ejemplos anteriores, vimos cómo se aplica una función definida por el usuario a cada fila y columna. También podemos aplicar funciones definidas por el usuario que toman dos argumentos.
Ejemplo 1: para columna
Python3
# function to returns x+y def addData(x, y): return x + y # 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,10,11,12), (13,14,15,16) ] # Creating a Dataframe object df = pd.DataFrame(matrix, columns = list('abcd')) # Applying a user defined function to each # column which will add value in each # column by given number new_df = df.apply(addData, args = [1]) # Output print(new_df)
Producción:
Ejemplo 2: Para Fila
Python3
# function to returns x+y def addData(x, y): return x + y # 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,10,11,12), (13,14,15,16) ] # Creating a Dataframe object df = pd.DataFrame(matrix, columns = list('abcd')) # Applying a user defined function to each # row which will add value in each row by # given number new_df = df.apply(addData, axis = 1, args = [3]) # Output new_df
Producción :
Método 3: Aplicar la función numpy a cada fila/columna
Ejemplo 1: Para columna
Python3
# 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,10,11,12), (13,14,15,16) ] # Creating a dataframe object df = pd.DataFrame(matrix, columns = list('abcd')) # Applying a numpy function to each # column by squaring each value new_df = df.apply(np.square) # Output new_df
Producción :
Ejemplo 2: Para Fila
Python3
# 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,10,11,12), (13,14,15,16) ] # Creating a dataframe object df = pd.DataFrame(matrix, columns = list('abcd')) # Apply a numpy function to each row # to find square root of each value new_df = df.apply(np.sqrt, axis = 1) # Output new_df
Producción :
Método 4: Aplicar una función Reductora a cada fila/columna
Una función Reductora tomará la fila o la columna como una serie y devolverá una serie del mismo tamaño que la fila/columna de entrada o devolverá una sola variable dependiendo de la función que usemos .
Ejemplo 1: para columna
Python3
# 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,10,11,12), (13,14,15,16) ] # Creating a Dataframe object df = pd.DataFrame(matrix, columns = list('abcd')) # Applying a numpy function to get the sum # of all values in each column new_df = df.apply(np.sum) # Output new_df
Producción :
Ejemplo 2: Para Fila
Python3
# 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,10,11,12), (13,14,15,16) ] # Creating a Dataframe object df = pd.DataFrame(matrix, columns = list('abcd')) # Applying a numpy function to get t # he sum of all values in each row new_df = df.apply(np.sum, axis = 1) # Output new_df
Producción :