In [ ]:
import numpy as np
import os
import pandas as pd
In [ ]:
""" habilitando plots no notebook """
%matplotlib inline
In [ ]:
""" plot libs """
import matplotlib.pyplot as plt
import seaborn as sns
In [ ]:
""" Configurando o Matplotlib para o modo manual """
plt.interactive(False)
In [ ]:
""" DataFrame contendo 5 Séries com Distribuições Normais distintas """
df = pd.DataFrame(
columns=["S1", "S2", "S3", "S4", "S5"],
data=(
np.random.randn(100, 5) * np.array([10, 15, 50, 100, 200]) + np.array([0, 5, 30, 30, 50])
)
)
In [ ]:
""" Histograma sem Normalização """
plt.figure(figsize=(12,8))
plt.hist(df.S1, bins=10)
plt.show()
In [ ]:
""" Histograma com Normalização """
plt.figure(figsize=(12,8))
plt.hist(df.S1, bins=10, normed=True)
plt.show()
df.S1.describe()
In [ ]:
""" Histograma de duas Séries """
plt.figure(figsize=(12,8))
plt.hist(df[["S1", "S2"]], bins=10, normed=True)
plt.show()
df[["S1", "S2"]].describe()
In [ ]:
""" Histograma de mais de duas Séries """
plt.figure(figsize=(12,8))
plt.hist(df, bins=10, normed=True)
plt.show()
df.describe()
In [ ]:
plt.figure(figsize=(15,10))
plt.hist(df.S1, bins=10, normed=True, color="blue", alpha=0.5, label="S1")
plt.hist(df.S2, bins=10, normed=True, color="red", alpha=0.5, label="S2")
plt.legend()
plt.show()
In [ ]:
""" Uma Série """
df.S1.hist(bins=10, normed=True, figsize=(12,8))
plt.show()
In [ ]:
""" Histograma de duas Séries """
df[["S1", "S2"]].hist(bins=10, normed=True, figsize=(12,8))
plt.show()
df[["S1", "S2"]].describe()
In [ ]:
""" Histograma de mais de duas Séries """
df.hist(bins=10, figsize=(12,8))
plt.show()
df.describe()
In [ ]:
""" Uma Série """
plt.figure( figsize=(12,8))
sns.distplot(df.S1)
plt.show()
In [ ]:
""" Histograma de duas Séries (1) """
plt.figure( figsize=(12,8))
f, axes = plt.subplots(2, 1, figsize=(15, 8), sharex=True)
sns.distplot(df.S1, kde=False, color="blue", ax=axes[0])
sns.distplot(df.S2, kde=True, color="red", ax=axes[1])
plt.show()
df[["S1", "S2"]].describe()
In [ ]:
""" Histograma de duas Séries (1) """
f, axes = plt.subplots(1, 2, figsize=(15, 8), sharex=True)
sns.distplot(df.S1, kde=False, color="blue", ax=axes[0])
sns.distplot(df.S2, kde=True, color="red", ax=axes[1])
plt.show()
df[["S1", "S2"]].describe()
In [ ]:
""" Histograma de mais de duas Séries """
plt.figure( figsize=(12,8))
f, axes = plt.subplots(3, 2, figsize=(15, 8), sharex=True)
sns.distplot(df.S1, kde=False, color="blue", ax=axes[0, 0])
sns.distplot(df.S2, kde=True, color="red", ax=axes[0, 1])
sns.distplot(df.S3, kde=True, color="orange", ax=axes[1, 0])
sns.distplot(df.S4, kde=True, rug=True, color="gray", ax=axes[1, 1])
sns.distplot(df.S5, hist=False, kde_kws={"shade": True}, color="purple", ax=axes[2, 1])
plt.show()
df[["S1", "S2"]].describe()
In [ ]:
""" default: vertical """
plt.figure(figsize=(15,10))
plt.boxplot(df.S1)
plt.show()
In [ ]:
""" horizontal pra variar """
plt.figure(figsize=(15,10))
plt.boxplot(df.S1, vert=False)
plt.show()
In [ ]:
plt.figure(figsize=(15,10))
plt.boxplot(df.T)
plt.show()
In [ ]:
tmp1 = df[["S1", "S2"]]
tmp2 = df[["S3", "S3"]]
tmp2.columns = tmp1.columns # append com colunas iguais não cria NaNs
tmp = tmp1.append(tmp2)
In [ ]:
plt.figure(figsize=(15,10))
plt.boxplot(tmp.T)
plt.show()
tmp.describe(percentiles=[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
In [ ]:
df.plot(kind="box", figsize=(15,10))
plt.show()
In [ ]:
tmp1 = df.copy()
tmp2 = df[["S5", "S5", "S5", "S5", "S5"]]
tmp2.columns = tmp1.columns # append com colunas iguais não cria NaNs
tmp = tmp1.append(tmp2)
In [ ]:
plt.figure(figsize=(15,10))
tmp.plot(kind="box", figsize=(15,10))
plt.show()
tmp.describe(percentiles=[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
In [ ]:
plt.figure(figsize=(15,10))
sns.boxplot(data=df)
plt.show()
In [ ]:
serie_original = pd.Series(np.random.randn(900)) * 32 + 230
outliers = pd.Series(np.random.randn(100)) * 320 + 230
In [ ]:
""" Escreva a a Solução Aqui """
Juntar a Série Original com os Outliers para criar uma Série Contaminada. Visualizar a nova série.
Depois, propor cortes na série para eliminar os outliers sem perder muitos dados de dentro da distribuição.
Em cada corte executado, visualizar a distribuição e as medidas de constrole da distribuição.
In [ ]:
""" Escreva a a Solução Aqui """
In [ ]:
""" Escreva a a Solução Aqui """