Home Tutorial de Pandas
Post
Cancel

Tutorial de Pandas

Tutorial de Pandas

Pandas:

Pandas é uma biblioteca de Python para análise e manipulação de dados.

Você pode instalar com pip:

1
python -m pip install -U pandas

Refazendo a última prática

Pandas no Lab:

Com os dados da aula sobre labfis, podemos refazer algumas partes em poucas linhas:

Primeiro, importamos a biblioteca:

1
import pandas as pd

Vamos abrir os arquivos data1.dat e data2.dat e criar um dataframe a partir deles. Dataframes são um tipo específico do pandas e são basicamente tabelas.

1
2
3
data1 = pd.read_csv("data1.dat", names=['data1'])
data2 = pd.read_csv("data2.dat", names=['data2'])
df = pd.concat([data1,data2], axis=1)

você verá algo como:

O comando read_csv() serve para abrir arquivos com dados e, apesar do nome, não precisamos usar apenas arquivos .csv. Caso você queria abrir um arquivo numa pasta diferente do seu arquivo .py ou notebook, é preciso passar o caminho completo. O argumento names serve para passarmos uma lista de nomes para as colunas do dataframe.

Por fim, concat() concatena dois dataframes ao longo das linhas(axis=0)ou colunas(axis=1).

Agora a primeira vantagem do pandas: podemos fazer o primeiro plot com um simples comando:

1
df.plot()

que nos retorna:

Num total de 4 linhas temos um belo plot dos nossos dados!

Também podemos plotar apenas uma coluna:

1
df['data1'].plot()

Também é possível passar uma lista de colunas.

Podemos criar novas colunas simplesmente atribuindo dados à uma coluna com um novo nome. Como exemplo vamos criar duas novas colunas, uma com o desvio padrão e outra com a média:

1
2
df['mean'] = df.mean(axis=1)
df['std'] = df.std(axis=1)

É possível fazer operações com as colunas:

1
df['data1_norm'] = (df['data1'] - df['data1'].mean())/df['data1'].std()

ou aplicar funções(inclusive do numpy!) ao dataframe:

1
df['std_sqrd'] = df['std'].apply(lambda x:x**2)

Por fim, podemos criar o gráfico com barras de erro. O método plot() também recebe qualquer argumento da função plot do matplotlib, então é possível colocar, por exemplo, um título:

1
df['mean'].plot(yerr=df['std'], marker ='D', title='Errorbar plot')

Isso é só o básico. Pandas pode ser tão complexo quanto seus dados precisarem e a documentação é ótima.

Exemplo Astronômico:

A partir desses dados , em especial a tabela hygdata_v3.csv, vamos contruir o Diagrama HR .

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
data = pd.read_csv('hygdata_v3.csv')
df = pd.DataFrame(data)
df.columns

fig = plt.figure(
    figsize=(8, 10),
    dpi=72)

ax = fig.add_axes([.1, .1, .85, .8])

ax.set_title('Hertzsprung-Russell Diagram', fontsize=18)
ax.title.set_position([.5, 1.03])
ax.set_xlabel('Color Index (B-V)')
ax.set_ylabel('Absolute Magnitude')

ax.scatter(
    df['ci'],
    df['absmag'],
    marker='.',
    s=[1] * len(df),
    c=df['ci'],
    cmap='inferno_r',
    linewidth=0)

ax.set_facecolor('black')
ax.scatter(0.656, 4,83, marker='.', c='red')

ax.set_xlim(-.5, 2.5)
ax.set_xticks(np.linspace(0, 2, 3, endpoint=True))
ax.set_ylim(18, -16)
ax.set_yticks(np.linspace(20, -10, 3, endpoint=True))

This post is licensed under CC BY 4.0 by the author.