Aplicar uma função a múltiplas colunas em Pandas DataFrame
Este artigo irá introduzir como aplicar uma função a múltiplas colunas em Pandas DataFrame. Utilizaremos o mesmo DataFrame que abaixo em todos os códigos de exemplo.
import pandas as pd
import numpy as np
df = pd.DataFrame(
[[5, 6, 7, 8], [1, 9, 12, 14], [4, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
Resultado:
a b c d
0 5 6 7 8
1 1 9 12 14
2 4 8 10 6
Utilize apply()
para aplicar funções às colunas em Pandas
O método apply()
permite aplicar uma função para todo um DataFrame, seja através de colunas ou linhas. Definimos o parâmetro axis
como 0 para linhas e 1 para colunas.
Nos exemplos mostrados abaixo, vamos aumentar o valor de uma amostra DataFrame utilizando a função que definimos anteriormente:
import pandas as pd
import numpy as np
df = pd.DataFrame(
[[5, 6, 7, 8], [1, 9, 12, 14], [4, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
def x(a):
return a + 1
df_new = df.apply(x, axis=1)
print("The original dataframe:")
print(df)
print("The new dataframe:")
print(df_new)
Resultado:
The original dataframe:
a b c d
0 5 6 7 8
1 1 9 12 14
2 4 8 10 6
The new dataframe:
a b c d
0 6 7 8 9
1 2 10 13 15
2 5 9 11 7
Podemos também aplicar uma função a múltiplas colunas, como se mostra abaixo:
import pandas as pd
import numpy as np
df = pd.DataFrame(
[[5, 6, 7, 8], [1, 9, 12, 14], [4, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
print("The original dataframe:")
print(df)
def func(x):
return x[0] + x[1]
df["e"] = df.apply(func, axis=1)
print("The new dataframe:")
print(df)
Resultado:
The original dataframe:
a b c d
0 5 6 7 8
1 1 9 12 14
2 4 8 10 6
The new dataframe:
a b c d e
0 5 6 7 8 11
1 1 9 12 14 10
2 4 8 10 6 12
A nova coluna anexada e
é a soma dos dados nas colunas a
e b
. O DataFrame em si é o argumento oculto passado para a função. As colunas podem ser acedidas com o índice, como no exemplo acima, ou com o nome da coluna, como se mostra abaixo.
import pandas as pd
import numpy as np
df = pd.DataFrame(
[[5, 6, 7, 8], [1, 9, 12, 14], [4, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
print("The original dataframe:")
print(df)
df["e"] = df.apply(lambda x: x.a + x.b, axis=1)
print("The new dataframe:")
print(df)
Executa a mesma operação que no exemplo acima. Utilizamos aqui uma função lambda
. As funções x.a
e x.b
referem-se à coluna a
e b
no campo de dados.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedInArtigo relacionado - Pandas DataFrame
- Como obter os cabeçalhos da coluna Pandas DataFrame como uma lista
- Como eliminar a coluna Pandas DataFrame
- Como Converter a Coluna DataFrame para DataTempo em Pandas
- Como Converter um Flutuador em um Inteiro em Pandas DataFrame
- Como Classificar Pandas DataFrame pelos Valores de uma Coluna
- Como Obter o Agregado de Pandas Group-By e Sum