<jupyter_start><jupyter_text>Adicionando Colunas, Modificando Colunas e Valores  Vamos pegar o nosso dataframe novamente<jupyter_code>import pandas as pd
#importando os arquivos
vendas_df = pd.read_csv(r'Contoso - Vendas  - 2017.csv', sep=';')
produtos_df = pd.read_csv(r'Contoso - Cadastro Produtos.csv', sep=';')
lojas_df = pd.read_csv(r'Contoso - Lojas.csv', sep=';')
clientes_df = pd.read_csv(r'Contoso - Clientes.csv', sep=';')

#limpando apenas as colunas que queremos
clientes_df = clientes_df[['ID Cliente', 'E-mail']]
produtos_df = produtos_df[['ID Produto', 'Nome do Produto']]
lojas_df = lojas_df[['ID Loja', 'Nome da Loja']]

#mesclando e renomeando os dataframes
vendas_df = vendas_df.merge(produtos_df, on='ID Produto')
vendas_df = vendas_df.merge(lojas_df, on='ID Loja')
vendas_df = vendas_df.merge(clientes_df, on='ID Cliente').rename(columns={'E-mail': 'E-mail do Cliente'})
display(vendas_df)<jupyter_output><empty_output><jupyter_text>Agora, e se quisermos acrescentar uma coluna com o mês, o dia e o ano de cada venda (e não só a data completa)  E agora, caso a gente queira modificar 1 valor específico, como fazemos? Vamos importar novamente a base de produtos<jupyter_code>novo_produtos_df = pd.read_csv(r'Contoso - Cadastro Produtos.csv', sep=';')
display(novo_produtos_df.head())
#repare no .head() para pegar apenas os primeiros valores, é bem comum esse uso para ter uma visão do que são os dados<jupyter_output><empty_output><jupyter_text>Antes de entrar no próximo exemplo, precisamos falar de 2 métodos:    1. loc - permite pegar uma linha de acordo com o índice dela. Ele dá erro caso não encontre o índice. Isso é interessante principalmente quando o índice é uma informação relevante ao invés só do número do índice ou quando queremos pegar alguma linha específica do dataframe (ao invés de ir do início do dataframe até a linha 5, por exemplo).        Também podemos usar como loc[índice_linha, índice_coluna] para acessar um valor específico e modificá-lo.    2. iloc - enxerga o dataframe como linhas e colunas e consegue pegar o valor com um número de linha e um número de coluna. Repara que ele não analisa o valor do índice da linha e da coluna, apenas a posição importa.        Uso: iloc[num_linha, num_coluna]        - Vendo na prática<jupyter_code>novo_produtos_df = novo_produtos_df.set_index('Nome do Produto')
display(novo_produtos_df.head())
#vamos pegar o preço produto Contoso Optical Wheel OEM PS/2 Mouse E60 Black
#por loc

#por iloc<jupyter_output><empty_output><jupyter_text>A empresa decidiu aumentar o preço do produto ID 873 (Contoso Wireless Laser Mouse E50 Grey) para 23 reais. Como fazemos, para modificar isso na nossa base?<jupyter_code>#novo_produtos_df.loc['Contoso Wireless Laser Mouse E50 Grey', 'Preco Unitario'] = 23<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.08748221906116643, 'fraction_numerical': 0.008179231863442389, 'mean_word_length': 5.496535796766744, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 17, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '4', 'dir': 'jupyter-structured-clean-dedup', 'id': '37029', 'license': 'MIT', 'n_tokens_mistral': 1073, 'n_tokens_neox': 1048, 'n_words': 336, 'path': 'pandas/.ipynb_checkpoints/Pandas 07-checkpoint.ipynb', 'repo_name': 'amarelopiupiu/python', 'size': '2812'}