Translate

Mostrar mensagens com a etiqueta Engenharia de Dados. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Engenharia de Dados. Mostrar todas as mensagens

sexta-feira, 20 de fevereiro de 2026

🔥 “Pandas: O ‘SORT’ do Python que Vai Fazer Você Repensar Tudo que Sabe sobre Arquivos Sequenciais”

 

Bellacosa Mainframe apresenta Pandas a Biblioteca poderosa do Python

🔥 “Pandas: O ‘SORT’ do Python que Vai Fazer Você Repensar Tudo que Sabe sobre Arquivos Sequenciais”


Se você vem do mundo COBOL, prepare-se: este não é apenas mais um artigo sobre Python.

É um choque de paradigma.

É como sair do SORT FIELDS=(...) no JCL e descobrir que você pode fazer tudo isso… e mais… em uma única linha de código.

Hoje vamos falar da biblioteca pandas — mas no estilo Bellacosa Mainframe: com história, bastidores, comparações práticas com COBOL, exemplos reais e até alguns easter eggs que vão te surpreender.


☕ 1. A Origem do Pandas — Não, Não Tem Nada a Ver com o Animal 🐼

O nome pandas vem de:

PANel DAta Structure

Criada em 2008 por Wes McKinney, a biblioteca nasceu dentro de um problema real:

👉 manipular dados financeiros de forma eficiente (algo que qualquer sistema em COBOL faz há décadas).

Ou seja…

💡 Pandas nasceu resolvendo problemas que você já resolve no mainframe.

A diferença?

👉 Ele fez isso com uma abordagem muito mais dinâmica e interativa.


🧠 2. O “choque cultural” para quem vem do COBOL

Se você trabalha com:

  • Arquivos VSAM
  • Sequential files
  • SORT / ICETOOL
  • DFSORT
  • DB2 queries

Então o pandas vai parecer… estranho no começo.

Mas depois:

🔥 viciante

Veja essa comparação:

COBOL / JCLPandas
SORT FIELDSsort_values()
READ FILEread_csv()
WRITE FILEto_csv()
IF / EVALUATEfiltros (query / loc)
FILE LAYOUTDataFrame

👉 O DataFrame é o seu novo “registro + tabela + dataset + tudo junto”


📊 3. O coração do Pandas: DataFrame

Imagine isso:

01 CLIENTE.
05 ID PIC 9(05).
05 NOME PIC X(30).
05 SALDO PIC 9(10)V99.

Agora pense nisso como uma tabela inteira carregada na memória.

👉 Isso é um DataFrame

Exemplo em Python:

import pandas as pd

dados = {
"ID": [1, 2, 3],
"NOME": ["ANA", "JOAO", "CARLA"],
"SALDO": [1500.50, 230.00, 9999.99]
}

df = pd.DataFrame(dados)

print(df)

Resultado:

ID NOME SALDO
0 1 ANA 1500.50
1 2 JOAO 230.00
2 3 CARLA 9999.99

💡 Pense assim:

👉 Você carregou um arquivo inteiro na WORKING-STORAGE… mas com superpoderes.


⚡ 4. Filtrando dados — o “IF” mais poderoso que você já viu

COBOL:

IF SALDO > 1000
DISPLAY CLIENTE
END-IF

Pandas:

df[df["SALDO"] > 1000]

Sim.

Só isso.

🔥 Sem loop. Sem READ. Sem controle manual.


🔀 5. Ordenação — adeus SORT JCL?

JCL:

SORT FIELDS=(SALDO, D)

Pandas:

df.sort_values(by="SALDO", ascending=False)

👉 Em memória
👉 Instantâneo
👉 Encadeável com outras operações


🧩 6. JOIN (sim, tipo DB2)

COBOL tradicional sofre aqui…

Mas pandas:

df1.merge(df2, on="ID", how="inner")

💡 É como um:

SELECT *
FROM A, B
WHERE A.ID = B.ID

🧠 7. Agrupamento (o famoso SUM + BREAK logic)

COBOL:

  • Sort
  • Control break
  • Acumuladores
  • Mil linhas de código 😅

Pandas:

df.groupby("NOME")["SALDO"].sum()

🔥 Isso substitui um programa inteiro de batch.


🥚 8. Easter Eggs do Pandas (sim, existem!)

🐼 1. Representação visual amigável

O pandas automaticamente formata tabelas no estilo “relatório bonito”.

👉 Parece um mini-ISPF tabular 😄


🧪 2. Você pode encadear tudo

df[df["SALDO"] > 1000] \
.sort_values(by="SALDO") \
.head(2)

💡 Isso seria:

  • filtro
  • sort
  • limitar registros

👉 tudo em pipeline


🧙 3. Pandas aceita dados de tudo

  • CSV (sequencial)
  • Excel
  • JSON
  • SQL
  • APIs

👉 É como se o COBOL lesse qualquer formato… sem FD.


🏛️ 9. Curiosidade histórica (nível mainframe)

Enquanto o mundo distribuído evoluía…

👉 o mainframe já fazia:

  • processamento massivo
  • batch
  • ETL
  • consistência

O pandas basicamente trouxe essa filosofia para o mundo Python.

💡 Em outras palavras:

Pandas é o “mini-mainframe” do desenvolvedor moderno


🚀 10. Onde isso muda sua carreira

Se você domina COBOL e aprende pandas:

🔥 você vira um profissional híbrido raríssimo

Você passa a atuar em:

  • Engenharia de dados
  • Data analytics
  • Integração legado + moderno
  • Automação de processos batch fora do mainframe

👉 E o melhor:

Você não joga fora seu conhecimento COBOL.

Você expande ele.


🧠 11. Mentalidade nova (o pulo do gato)

COBOL:

👉 Processamento linha a linha

Pandas:

👉 Processamento em conjunto (vetorizado)

Esse é o maior shift.


☕ Conclusão no estilo Bellacosa

Se o COBOL te ensinou disciplina…

Se o JCL te ensinou controle…

Se o SORT te ensinou performance…

Então o pandas vai te ensinar:

🔥 liberdade

Mas cuidado…

Depois que você fizer um groupby().sum() em uma linha…

👉 você nunca mais vai olhar um control-break da mesma forma.

segunda-feira, 14 de abril de 2014

🎯 O guia mínimo que separa curiosos de verdadeiros Data Scientists

 

Bellacosa Mainframe apresenta Python na Ciencia de Dados

🎯 O guia mínimo que separa curiosos de verdadeiros Data Scientists

Python é a principal linguagem utilizada em Data Science, permitindo transformar grandes volumes de dados em insights valiosos para negócios e pesquisa. 

Com bibliotecas essenciais como NumPy, Pandas, Matplotlib, Seaborn e Scikit-learn, é possível realizar todo o ciclo analítico: carregamento, limpeza, exploração, visualização e modelagem de dados.

O Pandas oferece DataFrames poderosos para manipulação eficiente de informações, enquanto o NumPy garante cálculos vetorizados de alta performance. Ferramentas de visualização ajudam a identificar padrões, tendências e outliers, fundamentais para a análise exploratória. Já o Scikit-learn possibilita a criação de modelos de Machine Learning para previsões e classificações. 

Esse ecossistema torna Python indispensável em áreas como finanças, marketing, saúde, engenharia e Big Data. Aprender esses fundamentos é o primeiro passo para atuar como cientista de dados, analista ou engenheiro de dados, acompanhando a crescente demanda por profissionais capazes de extrair valor estratégico a partir dos dados.

🐍🔥 Cheatsheet Python para Data Science

🧠 Stack Essencial

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

👉 90% dos projetos começam assim.


📊 NumPy — Matemática Vetorizada (Base de Tudo)

Criar arrays

a = np.array([1, 2, 3])
b = np.zeros(5)
c = np.ones((2,3))
d = np.arange(0,10)
e = np.linspace(0,1,5)

Operações vetoriais

a * 2
a + b
np.sqrt(a)
np.mean(a)
np.sum(a)

👉 Sem loops → extremamente rápido.


📚 Pandas — DataFrames (o coração da Data Science)

Criar DataFrame

df = pd.DataFrame({
"nome": ["Ana", "João"],
"idade": [25, 30]
})

Ler arquivos

pd.read_csv("dados.csv")
pd.read_excel("dados.xlsx")
pd.read_json("dados.json")

Visualização inicial

df.head()
df.tail()
df.info()
df.describe()
df.shape
df.columns

👉 Primeiros comandos após carregar dados.


🔎 Seleção de dados

Coluna

df["idade"]

Múltiplas colunas

df[["nome", "idade"]]

Filtro

df[df["idade"] > 25]

Filtro múltiplo

df[(df["idade"] > 25) & (df["cidade"] == "SP")]

✏️ Modificação de dados

Nova coluna

df["idade_futura"] = df["idade"] + 5

Remover coluna

df.drop("idade", axis=1)

Valores ausentes

df.isna()
df.dropna()
df.fillna(0)

📈 Agrupamento (Group By)

df.groupby("cidade")["salario"].mean()

👉 Essencial para análise exploratória.


🔄 Ordenação

df.sort_values("idade")
df.sort_values("idade", ascending=False)

📊 Estatísticas rápidas

df.mean()
df.median()
df.std()
df.min()
df.max()
df.corr()

📉 Visualização com Matplotlib

Linha

plt.plot(df["idade"])
plt.show()

Histograma

plt.hist(df["idade"])
plt.show()

Scatter

plt.scatter(df["idade"], df["salario"])
plt.show()

🎨 Seaborn — Gráficos bonitos por padrão

sns.histplot(df["idade"])
sns.boxplot(x=df["idade"])
sns.scatterplot(x="idade", y="salario", data=df)

🧹 Limpeza de dados

Remover duplicatas

df.drop_duplicates()

Converter tipos

df["idade"] = df["idade"].astype(int)

Datas

df["data"] = pd.to_datetime(df["data"])
df["ano"] = df["data"].dt.year

🤖 Machine Learning básico (Scikit-Learn)

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

Dividir treino/teste

X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)

Treinar modelo

model = LinearRegression()
model.fit(X_train, y_train)

Previsão

pred = model.predict(X_test)

🧠 Pipeline mental da Data Science

1️⃣ Carregar dados
2️⃣ Explorar
3️⃣ Limpar
4️⃣ Transformar
5️⃣ Visualizar
6️⃣ Modelar
7️⃣ Avaliar


⚡ Truques poderosos

Aplicar função em coluna

df["log_salario"] = np.log(df["salario"])

Apply personalizado

df["categoria"] = df["idade"].apply(
lambda x: "Adulto" if x >= 18 else "Menor"
)

Amostra aleatória

df.sample(5)

Contagem de valores

df["cidade"].value_counts()

💾 Exportar dados

df.to_csv("saida.csv", index=False)
df.to_excel("saida.xlsx")

🔥 Ferramentas mais usadas na indústria

🐍 Python
📊 Pandas
⚡ NumPy
📈 Matplotlib / Seaborn
🤖 Scikit-Learn
🧠 TensorFlow / PyTorch
☁️ Spark / Databricks


☕ Frase de cientista de dados

👉 “Sem Pandas, Python é só uma linguagem.
Com Pandas, vira uma ferramenta de descoberta.”