1
resposta

Então é possível criar colunas usando o .loc ? Se sim, em quais situações isso é possível?

Tentei criar uma coluna fora do for e não consegui

1 resposta

Oi Luis! Tudo bem por aí?

Peço desculpas pela demora em lhe dar um retorno.

A função principal do loc a princípio é fazer seleções nos dataframes. Entretanto, também é possível criar colunas e linhas com esse comando!

Vamos utilizar o seguinte dataframe como exemplo:

import pandas as pd

dados = {
    'Motor': ['Motor 4.0 Turbo', 'Motor Diesel', 'Motor Diesel V8', 'Motor Diesel', 'Motor 1.6'],
    'Ano': [2019, 2003, 1991, 2019, 1990],
    'Quilometragem': [0.0, 5712.0, 37123.0, 0.0, 120000.0],
    'Zero_km': [True, False, False, True, False],
    'Valor': [88000.0, 106000.0, 72000.0, 89000.0, 32000.0]
}

dataset = pd.DataFrame(dados, index = ['Jetta', 'Passat', 'Crossfox', 'DS5', 'Fusca'])

Para criarmos uma coluna nova nesse dataframe, essa nova coluna deve ter o mesmo tamanho de todas as outras colunas, portanto, essa nova coluna deve ter 5 linhas. Utilizando o loc, vamos criar uma coluna chamada "Aleatorio" contendo números de 1 a 5:

Imagem com um exemplo de como criar uma coluna utilizando o comando loc.  Os códigos das imagens encontram-se no final desse tópico

Entretanto, existe uma maneira ainda mais simples de criar essa coluna, sem utilizar o loc. Utilizando apenas a linha de código dataset['Aleatorio'] = aleatorio. E obteremos o mesmo resultado:

Imagem com um exemplo de como criar uma coluna sem o comando loc.  Os códigos das imagens encontram-se no final desse tópico

Para criar uma linha utilizando o loc, você pode fazer da seguinte forma:

Imagem com um exemplo de como criar uma linha utilizando o comando loc. Os códigos das imagens encontram-se no final desse tópico

É importante ressaltar que o mesmo critério das colunas vale para a criação das linhas, ou seja, para criar uma nova linha, essa deve ser do mesmo tamanho das linhas já existentes no dataframe, tá bem?

Vou deixar os códigos que utilizei aqui para facilitar caso deseje testá-los:

# criando a lista com 5 numeros 
aleatorio = [1, 2, 3, 4, 5]
# criando uma coluna utilizando o comando loc
dataset.loc[:, 'Aleatorio'] = aleatorio
dataset
# criando uma coluna sem utilizar o comando loc
dataset['Aleatorio'] = aleatorio
dataset
# criando uma linha utilizando o comando loc
dataset.loc['Aleatorio', :] = aleatorio
dataset

Espero que isso tenha te ajudado, se ficar com alguma dúvida é só chamar :)

Bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software