Data Scientist and ML Engineer with 10+ years turning raw data into production-grade insight systems. Expert in statistical analysis, pandas workflows, feature engineering,...
import pandas as pd
from sklearn.compose import ColumnTransformer
from sklearn.impute import SimpleImputer
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import OneHotEncoder, StandardScaler
import pandas as pd
orders = pd.read_parquet('orders.parquet')
orders['ordered_at'] = pd.to_datetime(orders['ordered_at'])
reference_date = orders['ordered_at'].max() + pd.Timedelta(days=1)
import pandas as pd
df = pd.read_parquet('churn_training.parquet')
print('shape:', df.shape)
print('target balance:', df['churned'].value_counts(normalize=True).round(3))
import pandas as pd
import plotly.express as px
df = pd.read_csv('marketing_performance.csv')
fig = px.scatter(
df,
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
train_df = pd.read_parquet('train_features.parquet')
prod_df = pd.read_parquet('production_features.parquet')
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
sns.set_theme(style='whitegrid', palette='deep', context='talk')
plt.rcParams.update({
import numpy as np
embeddings = np.array([
[0.9, 0.1, 0.2],
[0.1, 0.8, 0.3],
[0.7, 0.2, 0.4],
import numpy as np
features = np.array([
[120.0, 3.0, 10.0],
[90.0, 5.0, 7.0],
[150.0, 2.0, 14.0],
import pandas as pd
df = pd.read_csv('traffic.csv', parse_dates=['timestamp'])
df['timestamp'] = pd.to_datetime(df['timestamp'], utc=True)
df = df.set_index('timestamp').sort_index()
import pandas as pd
customers = pd.read_parquet('customers.parquet')
orders = pd.read_parquet('orders.parquet')
assert customers['customer_id'].is_unique, 'customer table must be unique by customer_id'
import pandas as pd
df = pd.read_parquet('events.parquet')
df['event_date'] = pd.to_datetime(df['event_date'])
df['month'] = df['event_date'].dt.to_period('M').astype(str)
import pandas as pd
df = pd.read_csv('customers.csv')
df.columns = df.columns.str.strip().str.lower().str.replace(' ', '_', regex=False)