
import pandas as pd
import numpy as np
import warnings
warnings.filterwarnings('ignore')

# Load the Excel file
file_path = 'user_source_data/inc_dump 1.xlsx'
df = pd.read_excel(file_path)

print("=" * 70)
print("PHASE 1: DISCOVERY & INSPECTION")
print("=" * 70)

print(f"\nDataset Shape: {df.shape}")
print(f"Rows: {df.shape[0]}, Columns: {df.shape[1]}")

print("\nColumn Names:")
print(df.columns.tolist())

print("\nData Types:")
print(df.dtypes)

print("\nMissing Values (Null Count):")
print(df.isna().sum())

print("\nUnique Values per Column:")
for col in df.columns:
    print(f"  {col}: {df[col].nunique()} unique values")

print("\nDuplicated Rows:", df.duplicated().sum())

print("\nSample Data (first 5 rows):")
print(df.head())

print("\nSample Data (last 5 rows):")
print(df.tail())

# Check temporal columns
for col in ['sys_created_on', 'closed_at']:
    if col in df.columns:
        print(f"\n{col} sample values:")
        print(df[col].dropna().head(10).tolist())

# Check categorical columns value counts
categorical_cols = ['priority', 'incident_state', 'Tower', 'Domain']
for col in categorical_cols:
    if col in df.columns:
        print(f"\n{col} value counts:")
        print(df[col].value_counts().head(10))

# Check assignment_group counts
if 'assignment_group' in df.columns:
    print(f"\nassignment_group value counts (top 15):")
    print(df['assignment_group'].value_counts().head(15))

print("\n" + "=" * 70)
print("INSPECTION COMPLETE")
print("=" * 70)
