/
broot
/
ds-152_py_final_task
Обзор
Документация
Войти
/
broot
/
ds-152_py_final_task
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
explore_data.py
75 строк
3 KB
broot
Анализ входных данных (explore_data), корректировка TODO, начало работы над app.
01 авг 2026, 21:30
01 авг 2026, 21:30
5adef3b
Код
Авторство
О чём код?
import pandas as pd # Пути к файлам (лежат в папке source, можно будет потом скопировать в data) FILES = { "orders": "source/orders.csv", "users": "source/users.csv", "items": "source/items.csv", } for name, path in FILES.items(): print(f"\n{'='*60}") print(f" Файл: {name.upper()} ({path})") print("="*60) try: df = pd.read_csv(path) except FileNotFoundError: print(f"ОШИБКА: файл не найден. Проверь, что он лежит в папке source/") continue except Exception as e: print(f"ОШИБКА чтения: {e}") continue # 1. Размер print(f"Размер: {df.shape[0]} строк, {df.shape[1]} столбцов") # 2. Столбцы print("\nСтолбцы:", df.columns.tolist()) # 3. Типы данных (как в df.info()) print("\nТипы данных:") print(df.dtypes) # 4. Пропуски print("\nПропущенных значений:") null_counts = df.isnull().sum() print(null_counts[null_counts > 0] if null_counts.any() else "Нет пропусков") # 5. Дубликаты строк dup_rows = df.duplicated().sum() print(f"\nПолных дубликатов строк: {dup_rows}") # 6. Первые 5 строк для ознакомления print("\nПервые 5 строк:") print(df.head().to_string(index=False)) # 7. Основные статистики print("\nСтатистики (числовые и категориальные):") print(df.describe(include='all').to_string()) # 8. Уникальные значения ключевых колонок (если есть) id_cols = [c for c in df.columns if 'id' in c.lower()] if id_cols: print("\nУникальные значения в id-колонках:") for col in id_cols: print(f" {col}: {df[col].nunique()} уникальных, примеры: {df[col].dropna().unique()[:5].tolist()}") # 9. Если есть колонка с датой/временем – диапазон possible_date_cols = [c for c in df.columns if 'date' in c.lower() or 'time' in c.lower()] for col in possible_date_cols: try: temp = pd.to_datetime(df[col], errors='coerce') print(f"\nДиапазон дат в колонке '{col}': с {temp.min()} по {temp.max()}") except: pass # 10. Проверка на скрытые символы в строковых колонках str_cols = df.select_dtypes(include='object').columns if len(str_cols) > 0: print("\nПримеры строковых значений с пробелами/регистром:") for col in str_cols[:3]: # ограничим тремя, чтобы не перегружать sample = df[col].dropna().unique()[:3] print(f" {col}: {[repr(x) for x in sample]}") print("\n\nАнализ завершён.")