Você está na página 1de 17

IMPORTAÇÃO DE DADOS

albaro paiva

2023-11-24

Importar Arquivo CSV com Pandas

Pandas é uma popular biblioteca de código aberto para manipulação e análise de dados em Python. Ele
fornece estruturas de dados e funções necessárias para manipular e analisar dados estruturados, como planil-
has, tabelas e séries temporais
A função read_csv() é um método conveniente de ler dados de um arquivo CSV e armazená-los em um
DataFrame panda. Esse recurso tem vários parâmetros que você pode personalizar de acordo com suas
necessidades de importação de dados, como especificar delimitadores, manipular valores ausentes e definir a
coluna de índice.
Para ler um arquivo CSV usando pandas, deve primeiro importar a biblioteca de pandas, em seguida, use
a função read_csv() para ler o arquivo CSV:
Para ler um arquivo xlsx usando pandas,use a função read_excel para ler o arquivo xlsx:

import pandas as pd #importar a biblioteca de pandas,


import numpy as np #importa biblioteca numpy
import matplotlib.pyplot as plt #importa biblioteca matplolib

df=pd.read_excel(r"Notas.xlsx") #ler um arquivo xlsx

df.shape #Mostra o número da linha e da coluna dos dados

## (1000, 8)

df.dtypes #Mostra o tipo de variáveis

## genero object
## etnia object
## escolaridade_dos_pais object
## almoco object
## simulado object
## nota_matematica int64
## nota_literatura int64
## nota_redacao int64
## dtype: object

1
df.describe() # escreve todas as variáveis numéricas

## nota_matematica nota_literatura nota_redacao


## count 1000.00000 1000.000000 1000.000000
## mean 66.08900 69.169000 68.054000
## std 15.16308 14.600192 15.195657
## min 0.00000 17.000000 10.000000
## 25% 57.00000 59.000000 57.750000
## 50% 66.00000 70.000000 69.000000
## 75% 77.00000 79.000000 79.000000
## max 100.00000 100.000000 100.000000

df.genero.value_counts() # Conte o número de pessoas por gênero

## genero
## female 518
## male 482
## Name: count, dtype: int64

df.etnia.value_counts() # Conte o número de pessoas por etnia

## etnia
## group C 319
## group D 262
## group B 190
## group E 140
## group A 89
## Name: count, dtype: int64

df[['nota_matematica', 'nota_literatura', 'nota_redacao']].value_counts()

## nota_matematica nota_literatura nota_redacao


## 100 100 100 3
## 65 77 74 3
## 73 68 66 2
## 82 93 93 2
## 82 80 2
## ..
## 60 70 70 1
## 74 1
## 72 68 1
## 74 1
## 66 74 69 1
## Name: count, Length: 978, dtype: int64

df.nota_matematica.max() # notas max de Matematica

## 100

2
df.nota_matematica.min() # notas min de Matematica

## 0

#média de notas por genero


df.groupby(['genero'])[['nota_matematica','nota_literatura','nota_redacao']].mean()

## nota_matematica nota_literatura nota_redacao


## genero
## female 63.633205 72.608108 72.467181
## male 68.728216 65.473029 63.311203

#média de notas por etnia


df.groupby(['etnia'])[['nota_matematica','nota_literatura','nota_redacao']].mean()

## nota_matematica nota_literatura nota_redacao


## etnia
## group A 61.629213 64.674157 62.674157
## group B 63.452632 67.352632 65.600000
## group C 64.463950 69.103448 67.827586
## group D 67.362595 70.030534 70.145038
## group E 73.821429 73.028571 71.407143

# desvio padrão por genero e etnia


df.groupby(['genero'])[['nota_matematica','nota_literatura','nota_redacao']].std()

## nota_matematica nota_literatura nota_redacao


## genero
## female 15.491453 14.378245 14.844842
## male 14.356277 13.931832 14.113832

df.groupby(['etnia'])[['nota_matematica','nota_literatura','nota_redacao']].std()

## nota_matematica nota_literatura nota_redacao


## etnia
## group A 14.523008 15.543762 15.468278
## group B 15.468191 15.177499 15.625173
## group C 14.852666 13.997033 14.983378
## group D 13.769386 13.895306 14.367707
## group E 15.534259 14.874024 15.113906

3
Histograms

plt.hist(df.nota_matematica) # Histograma nota de matematica


plt.savefig('hist1.png') # Salva imagen(histograma) na pasta detrabalho
plt.show()

250

200

150

100

50

0
0 20 40 60 80 100

4
# control binwidth (never go with default)
# para o calculo de binwidth não por defeito como grafico anterior
#usamos np.arange , max e min valor da nota
plt.hist(df.nota_matematica, bins = np.arange(min(df.nota_matematica),
max(df.nota_matematica)+5,5))
plt.savefig('hist2.png')
plt.show()

140

120

100

80

60

40

20

0
0 20 40 60 80 100

5
Histograms nota_literatura

# control binwidth (never go with default)


# para o calculo de binwidth não por defeito como grafico anterior
#usamos np.arange , max e min valor da nota
plt.hist(df.nota_literatura, bins = np.arange(min(df.nota_literatura),
max(df.nota_literatura)+5,5),
color = 'plum', edgecolor = 'black')
plt.savefig('hist2.png')
plt.show()

140
120
100
80
60
40
20
0
20 40 60 80 100

6
Histograms nota_literatura

# control binwidth (never go with default)


# para o calculo de binwidth não por defeito como grafico anterior
#usamos np.arange , max e min valor da nota
plt.hist(df.nota_redacao, bins = np.arange(min(df.nota_redacao),
max(df.nota_redacao)+5,5),
color = 'plum', edgecolor = 'black')
plt.title('Distribuição Notas de redação')
plt.ylabel('Frequêcia')
plt.xlabel('Notas')
plt.savefig('hist3.png')
plt.show()

Distribuição Notas de redação


140

120

100
Frequêcia

80

60

40

20

0
20 40 60 80 100
Notas

7
multiple histograms

# multiple histograms

f, axarr = plt.subplots(2,2,figsize=(10,10)) # gera un espaço de impressão 2x2

axarr[0,0].hist(df.nota_matematica) # imprime posição 0 0


axarr[0,0].set_title('Nota de matemática')

axarr[0,1].hist(df.nota_literatura) # imprime posição 0 1


axarr[0,1].set_title('Nota de Literatura')

axarr[1,0].hist(df.nota_redacao) # imprime posição 1 0


axarr[1,0].set_title('Nota de redação')

axarr[1,1].hist(df.nota_redacao)
axarr[1,1].set_title('ota de Literatura')
plt.show()

8
Nota de matemática Nota de Literatura
250
200
200
150
150

100
100

50 50

0 0
0 20 40 60 80 100 20 40 60 80 100
Nota de redação ota de Literatura

200 200

150 150

100 100

50 50

0 0
20 40 60 80 100 20 40 60 80 100

# f.savefig('subplots.png') salva imagem pasta de trabajo

9
Scatter plot

plt.plot(df.nota_matematica,df.nota_redacao,'r*')
plt.title('Notas Matemática by Nota redação')
plt.xlabel('Notas Matemática')
plt.ylabel('Nota redação')

plt.show()

Notas Matemática by Nota redação


100

80
Nota redação

60

40

20

0 20 40 60 80 100
Notas Matemática

10
Scatter plot

plt.plot(df.nota_literatura,df.nota_redacao,'r*')
plt.title('Notas literatura by Nota redação')
plt.xlabel('Notas literatura')
plt.ylabel('Nota redação')

plt.show()

Notas literatura by Nota redação


100

80
Nota redação

60

40

20

20 40 60 80 100
Notas literatura

11
Scatter plot

plt.plot(df.nota_literatura,df.nota_matematica,'r*')
plt.title('Notas literatura by Nota redação')
plt.xlabel('Notas literatura')
plt.ylabel('Nota nota_matematica')

plt.show()

Notas literatura by Nota redação


100

80
Nota nota_matematica

60

40

20

0
20 40 60 80 100
Notas literatura

12
Boxplot por grupo (genero)

import matplotlib.pyplot as plt


import seaborn as sns # importo library searbon facilita box plot por grupo
# boxplot por genero, e nota em matematica
sns.boxplot(x='genero',y='nota_matematica',data=df)

100

80
nota_matematica

60

40

20

0
female male
genero

13
Boxplot genero

import seaborn as sns # importo library searbon facilita box plot por grupo

sns.boxplot(x='genero',y='nota_literatura',data=df)

100

80
nota_literatura

60

40

20
female male
genero

14
Boxplot genero (etnia)

import seaborn as sns # importo library searbon facilita box plot por grupo

sns.boxplot(x='etnia',y='nota_literatura',data=df)

100

80
nota_literatura

60

40

20
group B group C group A group D group E
etnia

15
grafico pie genero

import matplotlib.pyplot as plt


#create pie chart
data=df.genero.value_counts() # cantidas de
labels = ['female', 'male']
fig, ax = plt.subplots()
ax.pie(data, labels = labels,autopct = '%1.1f%%')

## ([<matplotlib.patches.Wedge object at 0x13f276dd0>, <matplotlib.patches.Wedge object at 0x13f23c6d0>]

plt.show()

female

51.8%

48.2%

male

16
grafico pie etnia

import matplotlib.pyplot as plt


import seaborn as sns

#create pie chart


data=df.etnia.value_counts() # cantidas de
labels = ['A', 'B','C','D','D']
colors = sns.color_palette('pastel')[0:5] #define color usa plette de color de seaborn
fig, ax = plt.subplots()
ax.pie(data, labels = labels,colors=colors,autopct = '%1.1f%%')

## ([<matplotlib.patches.Wedge object at 0x13f2c6dd0>, <matplotlib.patches.Wedge object at 0x13f28fb90>,

plt.show()

31.9%
B
26.2%

8.9%
D
19.0% 14.0%

C D

17

Você também pode gostar