Curso
Você não precisa ficar preso apenas aos dados que recebeu. Em vez disso, pode adicionar novas colunas a um DataFrame. Isso pode ser chamado de transformação, mutação ou engenharia de atributos.
Você pode criar novas colunas do zero, mas também é comum derivá-las de outras colunas, por exemplo, somando colunas ou convertendo unidades.
Derivando uma coluna
Usando um conjunto de dados de cães, vamos supor que você queira adicionar uma nova coluna ao seu DataFrame com a altura de cada cachorro em metros em vez de centímetros.
À esquerda do sinal de igual, use colchetes com o nome da nova coluna que deseja criar; neste caso, height_m. À direita, fica o cálculo.
dogs["height_m"] = dogs["height_cm"] / 100
print(dogs)
name breed color height_cm weight_kg date_of_birth height_m
0 Bella Labrador Brown 56 24 2013-07-01 0.56
1 Charlie Poodle Black 43 24 2016-09-16 0.43
2 Lucy Chow Chow Brown 46 24 2014-08-25 0.46
3 Cooper Schnauzer Gray 49 17 2016-09-16 0.49
4 Max Labrador Black 59 29 2016-09-16 0.59
5 Stella Chihuahua Tan 18 2 2016-09-16 0.18
6 Bernie St. Bernard White 77 74 2016-09-16 0.77
Repare que tanto a coluna original quanto a derivada estão no dataframe que você modificou.
Adicionando uma coluna
Neste exemplo, você vai calcular o índice de massa canina e adicioná-lo como uma coluna ao seu dataframe. BMI é o índice de massa corporal, calculado pelo peso em quilogramas dividido pela altura em metros ao quadrado.
dogs["height_m"] = dogs["weight_kg"] / dogs["height_m"] ** 2
print(dogs.head())
name breed color height_cm weight_kg date_of_birth height_m bmi
0 Bella Labrador Brown 56 24 2013-07-01 0.56 76.530612
1 Charlie Poodle Black 43 24 2016-09-16 0.43 129.799892
2 Lucy Chow Chow Brown 46 24 2014-08-25 0.46 113.421550
3 Cooper Schnauzer Gray 49 17 2016-09-16 0.49 70.803832
4 Max Labrador Black 59 29 2016-09-16 0.59 83.309394
De novo, a nova coluna fica à esquerda do sinal de igual, mas desta vez o cálculo envolve duas colunas.
Adicionando uma coluna com múltiplas manipulações
O verdadeiro poder do pandas aparece quando você combina todas as habilidades que aprendeu até aqui. Vamos descobrir os nomes dos cães altos e magros.
Primeiro, para definir os cães magros, selecione o subconjunto de cães com BMI menor que 100. Em seguida, ordene pela altura em ordem decrescente para ver no topo os cães magros mais altos.
Por fim, desta vez você vai manter apenas as colunas que interessam.
bmi_lt_100 = dogs[dogs["bmi"] < 100]
bmi_lt_100_height = bmi_lt_100.short_values("height_cm", ascending=False)
bmi_lt_100_height[["name", "height_cm", "bmi"]]
name height_cm bmi
4 Max 59 83.309394
0 Bella 56 76.530612
3 Cooper 49 70.803832
5 Stella 18 61.728395
Aqui, dá para ver que o Max é o cachorro mais alto com BMI abaixo de 100.
Exemplo interativo
No exemplo abaixo, você adiciona uma nova coluna ao DataFrame homelessness, chamada total, contendo a soma das colunas individuals e family_members. Depois, adicione outra coluna a homelessness, chamada p_individuals, com a proporção de pessoas em situação de rua em cada estado que são indivíduos. Por fim, imprima o dataframe homelessness.
# Add total col as sum of individuals and family_members
homelessness["total"] = homelessness["individuals"] + homelessness["family_members"]
# Add p_individuals col as proportion of individuals
homelessness["p_individuals"] = homelessness["individuals"] / homelessness["total"]
# See the result
print(homelessness)
Ao executar o código acima, o resultado é:
region state individuals family_members state_pop total p_individuals
0 East South Central Alabama 2570.0 864.0 4887681 3434.0 0.748
1 Pacific Alaska 1434.0 582.0 735139 2016.0 0.711
2 Mountain Arizona 7259.0 2606.0 7158024 9865.0 0.736
3 West South Central Arkansas 2280.0 432.0 3009733 2712.0 0.841
4 Pacific California 109008.0 20964.0 39461588 129972.0 0.8
...
48 South Atlantic West Virginia 1021.0 222.0 1804291 1243.0 0.821
49 East North Central Wisconsin 2740.0 2167.0 5807406 4907.0 0.558
50 Mountain Wyoming 434.0 205.0 577601 639.0 0.679
Veja também o tutorial da DataCamp sobre como remover colunas no pandas.
Para saber mais sobre como adicionar novas colunas no pandas, confira este vídeo do nosso curso Data Manipulation with pandas.
Este conteúdo foi extraído do curso Data Manipulation with pandas da DataCamp, por Maggie Matsui e Richie Cotton.
