Pular para o conteúdo principal

Tutorial: adicionar coluna no pandas

Você não precisa ficar preso apenas aos dados que recebeu. Em vez disso, pode adicionar novas colunas a um DataFrame.
· 4 min leer

Explore com IA

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

Experimente você mesmo.

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.

Temas

Relacionado

Tutorial

Tutorial de seleção de colunas em Python

data-frames-in-python-banner_cgzjxy.jpeg

Tutorial

Pandas Tutorial: DataFrames em Python