Notas:
# Importação
import pandas as pd
# Construção de Séries
'''
serie3 = serie1 + serie2
# Estruturas de Séries
dic = {'a': 2, 'b': 3}
dic2 = {'a': 3, 'b': 4}
serie1 = pd.Series(data=dic)
serie2 = pd.Series(data=dic2)
# Soma de Séries
print(serie3)
'''
# Construção de Data Frame (Colunas)
'''
dic3 = {'Nome': ['Luiz', 'Matheus', 'Maria'], 'Idade': [50, 30, 22]}
df = pd.DataFrame(dic3)
print(df)
print('-'*15)
print(df['Idade'])
'''
# Construção de Data Frame
'''
dic4 = {'Nome': ['Luiz', 'Matheus', 'Maria'], 'Idade': [40, 25, 69]}
df = pd.DataFrame(dic4)
print(df)
'''
# Criação por Listas
'''
lista = [['Paris', 4, 3], ['Brasil', 7, 5], ['Chile', 8, 10]]
df_pais = pd.DataFrame(lista, columns=['Pais', 'Medalhas_Ouro', 'Medalhas_Prata'])
print(df_pais)
print('-'*15)
print(df_pais['Medalhas_Ouro'])
print('-'*40)
# Análise Estatística
print(df_pais['Medalhas_Ouro'].mean())
print(df_pais['Medalhas_Ouro'].mode())
print(df_pais['Medalhas_Ouro'].median())
print(df_pais['Medalhas_Ouro'].var())
print(df_pais['Medalhas_Ouro'].max())
print(df_pais['Medalhas_Ouro'].min())
'''
Exercício 20
1.Escreva um programa que leia, nome, idade, sexo e país de orígem.
import pandas as pd
import tkinter as tk
def inserir():
nome_f = nome_l.get()
idade_f = int(idade_l.get())
sexo_f = sexo_l.get()
pais_f = pais_l.get()
add.append(nome_f)
add.append(idade_f)
add.append(sexo_f)
add.append(pais_f)
lista.append(add.copy())
add.clear()
nome_l.delete(0, tk.END)
idade_l.delete(0, tk.END)
sexo_l.delete(0, tk.END)
pais_l.delete(0, tk.END)
def mostrar():
df = pd.DataFrame(lista, columns=['Nome', 'Idade', 'Sexo', 'Pais'])
print(df)
print('-'*40)
print(f'Maior Idade: {df['Idade'].max()}')
print(f'Menor Idade: {df['Idade'].min()}')
print(f'Mediano de Idades: {df['Idade'].median()}')
add=[]
lista = []
janela = tk.Tk()
janela.title('Registro')
text_1 = tk.Label(janela, text='Nome')
nome_l = tk.Entry(width=40)
text_1.grid(row=0, column=0)
nome_l.grid(row=0, column=1)
text_2 = tk.Label(janela, text='Idade')
idade_l = tk.Entry(width=40)
text_2.grid(row=1, column=0)
idade_l.grid(row=1, column=1)
text_3 = tk.Label(janela, text='Sexo')
sexo_l = tk.Entry(width=40)
text_3.grid(row=2, column=0)
sexo_l.grid(row=2, column=1)
text_4 = tk.Label(janela, text='Pais')
pais_l = tk.Entry(width=40)
text_4.grid(row=3, column=0)
pais_l.grid(row=3, column=1)
inserir_dados = tk.Button(janela, text='Enviar', command=inserir)
inserir_dados.grid(row=4, column=1)
mostrar_dados = tk.Button(janela, text='Mostrar dados', command=mostrar)
mostrar_dados.grid(row=5, column=1)
janela.mainloop()
Com customTkinter
import tkinter.messagebox
import pandas as pd
import customtkinter as ctk
from tkinter import messagebox
def inserir():
nome_f = nome_l.get()
idade_f = int(idade_l.get())
sexo_f = sexo_l.get()
pais_f = pais_l.get()
add.append(nome_f)
add.append(idade_f)
add.append(sexo_f)
add.append(pais_f)
lista.append(add.copy())
add.clear()
nome_l.delete(0, ctk.END)
idade_l.delete(0, ctk.END)
sexo_l.delete(0, ctk.END)
pais_l.delete(0, ctk.END)
tkinter.messagebox.showinfo(title="Sucesso", message="Dados Adicionados!")
def mostrar():
df = pd.DataFrame(lista, columns=['Nome', 'Idade', 'Sexo', 'Pais'])
print(df)
print('-'*40)
print(f'Maior Idade: {df['Idade'].max()}')
print(f'Menor Idade: {df['Idade'].min()}')
print(f'Mediano de Idades: {df['Idade'].median()}')
add=[]
lista = []
janela = ctk.CTk()
janela.title('Registro')
ctk.set_appearance_mode('dark')
janela.geometry('250x180')
text_1 = ctk.CTkLabel(janela, text='Nome')
nome_l = ctk.CTkEntry(janela, width=200)
text_1.grid(row=0, column=0)
nome_l.grid(row=0, column=1)
text_2 = ctk.CTkLabel(janela, text='Idade')
idade_l = ctk.CTkEntry(janela, width=200)
text_2.grid(row=1, column=0)
idade_l.grid(row=1, column=1)
text_3 = ctk.CTkLabel(janela, text='Sexo')
sexo_l = ctk.CTkEntry(janela, width=200)
text_3.grid(row=2, column=0)
sexo_l.grid(row=2, column=1)
text_4 = ctk.CTkLabel(janela, text='Pais')
pais_l = ctk.CTkEntry(janela, width=200)
text_4.grid(row=3, column=0)
pais_l.grid(row=3, column=1)
inserir_dados = ctk.CTkButton(janela, text='Enviar', command=inserir)
inserir_dados.grid(row=4, column=1)
mostrar_dados = ctk.CTkButton(janela, text='Mostrar dados', command=mostrar)
mostrar_dados.grid(row=5, column=1)
janela.mainloop()
# Notas 2
import pandas as pd
import openpyxl
# Importando Dados CSV
df = pd.read_csv('dados_pacientes - dados_pacientes.csv')
# Análise Superficial
print(df.head())
# Importando Dados CSV
df2 = pd.read_excel('Base Aula 002-Exemplo.xlsx')
'''# Análise Superficial
print(df2.head()) # 5 Primeiras linhas
print(df2.tail()) # 5 Ultimas Linhas
print(df2.info()) # Informações
print(df2.describe()) # Medias gerais de vários tipos'''
# Filtrar
'''print(df2['Total'][df2['Vendedor'] == 'Caio'].sum()) # Soma as Vendas do Caio
print(df2['Total'][df2['Vendedor'] == 'Caio'].max()) # A A maior vendo do Caio
print(df2['Vendedor'].nunique()) # Numero de Vendedores
print(df2['Vendedor'].unique()) # Nomes dos Vendedores
print(df2['Produto'].value_counts()) # Quantidades de vendas de cada produto'''
# Ordenação
df2 = df2.sort_values(by= 'Total', ascending=False)
print(df2[['Total', 'Vendedor']])
# Agrupar Por
'''
print(df2[['Total', 'Vendedor', 'Produto', 'Quantidade']].groupby('Vendedor').sum())
print(df2[['Total', 'Vendedor', 'Produto', 'Quantidade']].groupby(['Vendedor', 'Produto']).sum())
# Seleção de Colunas
Vendas_caio = df2[df2['Vendedor'] == 'Caio']
Vendas_caio_Matriz = df2[(df2['Vendedor'] == 'Caio') & (df2['Loja'] == 'Matriz')]
print(Vendas_caio_Matriz.head())'''
# inserir Colunas
df2['Comissão'] = df2['Total'] * 0.05
print(df2.info())
print(df2[['Total', 'Comissão']])
Ex 21:
#1.Importe a Base Aula 002 - Exemplo.xlsx
#
#2. Encontre a Informação
# 2.1 - Qual país vendeu mais(Total)?
# 2.2 - Qual o melhor vendedor?
# 2.3 - Qual o melhor tipo de loja?
# 2.4 - Qual é o tipo de envio mais usado?
# 2.5 - Qual o público que mais atendemos (Gênero)?
# 2.6 - Quem fez as 3 maiores vendas?
# 2.7 - Adicione uma nova coluna comissão (Total * 5%)
import pandas
import openpyxl
import pandas as pd
tabela = pd.read_excel('Base Aula 002-Exemplo.xlsx')
print(tabela.info())
print('_'*40, 'MAIS VENDAS:')
pais_que_mais_vendeu = print(tabela['País'].value_counts().head(1))
print('_'*40, 'MELHOR VENDEDOR:')
melhor_vendedor = tabela[['Total', 'Vendedor']].groupby('Vendedor').sum()
print(melhor_vendedor.sort_values(by= 'Total', ascending=False).head(1))
print('_'*40, 'MELHOR LOJA:')
melhor_loja = tabela[['Loja', 'Total', 'Quantidade']].groupby('Loja').sum()
print(melhor_loja.sort_values(by= 'Total', ascending=False).head(1))
print('_'*40, 'ENVIO MAIS USADO:')
loja_mais_usada = tabela[['Tipo de Envio', 'Quantidade']].groupby('Tipo de Envio').sum()
print(loja_mais_usada.sort_values(by= 'Quantidade', ascending=False).head(1))
print('_'*40, 'GÊNERO:')
generos = tabela['Gênero'].value_counts()
print(generos)
# Exportar
df.to_excel('planilha_corrigida.xlsx')
#ETL
df = pd.read_csv('dados_pacientes - dados_pacientes.csv')
'''# print(df.head())
print(df.isna()) # Mostra qual é vazia True e False
print(df.isna().sum()) # Contabiliza a quantidade de colunas e linhas vazias
#print(df.info())'''
'''df = df.dropna() # Deleta todas as colunas com vazios (CUIDADO)
print(df.isna().sum())'''
# df.dropna(inplace = True)
'''df.dropna(inplace=True, thresh=1)
df.dropna(inplace=True, thresh=1, axis=1)'''
'''# preencher
df.fillna(value=0, inplace=True)
'''
# Troca um item específico da lista
df = df['Nome_Paciente'].replace('Paciente_1', 'João')
print(df.isna().sum())
print(df.info())
print(df.head())
# Exercicio 22
import openpyxl
import pandas as pd
#ETL
df = pd.read_csv('Vendas_Incorreto - Exemplo.csv')
# Tabela Base
print(df.info())
# Tabela Corrigida
df.dropna(inplace=True, thresh=1)
df.dropna(inplace=True, thresh=1, axis=1)
print(df.info())
print('Quantidade de Produtos vendidos')
print(df['Produto'].value_counts())
print('Vendedores:', df['Vendedor'].unique())
print(df[['Vendedor', 'Quantidade']].groupby('Vendedor').sum())
print(df[['Gênero', 'Quantidade']].groupby('Gênero').sum())
print(df[['Loja', 'Total']].groupby('Loja').sum())
####### Exercicio 23
import pandas as pd
import openpyxl
df = pd.read_csv('Salarios.csv')
quant = len(df)
print(df.head(quant))
print(df.info())
print(f'A média de salário base é: {(float(df['BasePay'].mean())):.2f}')
print(f'A maior hora extra paga é: {(float(df['OvertimePay'].max())):.2f}')
print(f'A profissão do Joseph é: {df[df['EmployeeName'] == 'JOSEPH DRISCOLL']['JobTitle'].values[0]}')
print(f'O nom da pessoa com maior salário é: {df['EmployeeName'][df['BasePay'] == df['BasePay'].max()].values[0]}')
media_pagamento = df.groupby('Year')['TotalPay'].mean().sort_values(ascending=False)
print(f'A média de pagamento por ano é: {media_pagamento}')
PROJETO
import pandas as pd
import openpyxl
import seaborn as sns
import matplotlib.pyplot as plt
# Importando Dados CSV
df = pd.read_csv('vinho.csv')
# Remover a coluna 'Unnamed: 0'
df.drop(columns=['Unnamed: 0'], inplace=True)
# Preencher NaN nas colunas numéricas com 0
df[['points', 'price']] = df[['points', 'price']].fillna(0)
df[['country', 'designation', 'province', 'region_1', 'region_2', 'taster_name', 'taster_twitter_handle', 'variety']] = df[['country', 'designation', 'province', 'region_1', 'region_2', 'taster_name', 'taster_twitter_handle', 'variety']].fillna('-')
# Definir a quantidade máxima de colunas a serem exibidas
pd.set_option('display.max_columns', None) # Exibe todas as colunas
# Definir a quantidade máxima de linhas a serem exibidas (opcional)
pd.set_option('display.max_rows', 50) # Exibe até 50 linhas
# Exibir as primeiras 50 linhas do DataFrame
print(df.head(50))
print(df.info())
Código 2
import pandas as pd
import openpyxl
import seaborn as sns
import matplotlib.pyplot as plt
# Importando Dados CSV
df = pd.read_csv('vinho.csv')
# Remover a coluna 'Unnamed: 0'
df.drop(columns=['Unnamed: 0'], inplace=True)
# Preencher NaN nas colunas numéricas com 0
df[['points', 'price']] = df[['points', 'price']].fillna(0)
df[['country', 'designation', 'province', 'region_1', 'region_2', 'taster_name', 'taster_twitter_handle', 'variety']] = df[['country', 'designation', 'province', 'region_1', 'region_2', 'taster_name', 'taster_twitter_handle', 'variety']].fillna('-')
# Definir a quantidade máxima de colunas a serem exibidas
pd.set_option('display.max_columns', None) # Exibe todas as colunas
# Definir a quantidade máxima de linhas a serem exibidas (opcional)
pd.set_option('display.max_rows', 50) # Exibe até 50 linhas
vendas_paises = df['country'].value_counts().reset_index()
# PAÍSES COM MAIOR QUANTIDADE DE VENDAS.
print('PAÍSES COM MAIOR QUANTIDADE DE VENDAS:')
# print(vendas_paises.head(50).to_string(index=False))
for index, row in vendas_paises.head(50).iterrows():
print(f"{row['country'].ljust(30)} {str(row['count']).rjust(10)}")
'''
# Exibir as primeiras 50 linhas do DataFrame
print(df.head(50))
print(df.info())
print(df.describe())'''
# Definindo o estilo do gráfico
sns.set(style="whitegrid")
# Criando o gráfico de barras
plt.figure(figsize=(12, 6)) # Define o tamanho da figura
sns.barplot(data=vendas_paises.head(10), x='count', y='country', palette='viridis')
# Adicionando título e rótulos
plt.title('PAÍSES COM MAIOR QUANTIDADE DE VENDAS', fontsize=16)
plt.xlabel('Quantidade de Vendas', fontsize=14)
plt.ylabel('Países', fontsize=14)
# Exibindo o gráfico
plt.show()