- Notifications
You must be signed in to change notification settings - Fork 12.5k
Open
Description
Дополнение к коду: вывод статистики и завершение main()
Добавим недостающую часть функции main() — вывод статистики и сохранение результата.
# Вывод статистикиifargs.stats: stats=processor.describe_extended() print("\n! + "="*50) print("РАСШИРЕННАЯ СТАТИСТИКА ПО ЧИСЛОВЫМ КОЛОНКАМ") print("="*50) forcol, datainstats.items(): print(f"\nКолонка: {col}") forkey, valueindata.items(): print(f" {key.capitalize()}: {value:.4f}") elifargs.basic_stats: stats=processor.describe_extended() print("\n"+"="*50) print("БАЗОВАЯ СТАТИСТИКА (mean/median/stdev)") print("="*50) forcol, datainstats.items(): print(f"\nКолонка: {col}") forkeyin ['mean', 'median', 'stdev']: ifkeyindata: print(f" {key.capitalize()}: {data[key]:.4f}") # Сохранение результатаifargs.output: processor.save_data(args.output, result_data) else: # Если нет выходного файла — показываем первые 10 строк результатаprint("\n! + "="*50) print("РЕЗУЛЬТАТ (первые 10 строк)") print("="*50) print(result_data.head(10).to_string(index=False)) logger.info("Обработка завершена") if__name__=="__main__": main()Как использовать обновлённую версию
- Установите зависимости (если pandas не установлен):
pip install pandasСохраните код в файл
ii_grut.py.Примеры запуска из консоли:
# 1. Базовая загрузка и расширенная статистика python ii_grut.py данные.csv --stats # 2. Фильтрация: выбрать строки, где Возраст > 18 python ii_grut.py данные.csv --filter Возраст > 18 --output отфильтровано.csv # 3. Группировка: посчитать сумму продаж по регионам python ii_grut.py данные.csv --groupby Регион Продажи --agg sum --output итоги.csv # 4. Базовая статистика (только mean/median/stdev) python ii_grut.py данные.json --basic-stats # 5. Комбинированная обработка: фильтрация + группировка + сохранение python ii_grut.py данные.xlsx \ --filter Статус == "Активный" \ --groupby Город Продажи \ --agg mean \ --output средние_продажи_по_городам.csvНовые возможности по сравнению с предыдущей версией
- Поддержка форматов: CSV, JSON, Excel (xls/xlsx).
- Расширенная фильтрация с операторами:
==,>,<,>=,<=,!=. - Группировка и агрегация по колонкам с функциями: sum, mean, count, min, max.
- Два режима статистики:
--stats— полная (count, mean, median, stdev, min, max, sum);--basic-stats— только базовая (mean, median, stdev).
- Логирование в файл
ii_grut.logи консоль. - Удобный вывод результата:
- сохранение в файл (если указан
--output); - показ первых 10 строк в консоли (если
--outputне указан).
- сохранение в файл (если указан
Возможные доработки
- Добавить поддержку SQL‑баз данных.
- Реализовать визуализацию (графики через matplotlib/seaborn).
- Добавить валидацию схем данных (например, через pandera).
- Сделать веб‑интерфейс на Flask/FastAPI.
- Поддерживать больше форматов (Parquet, XML).
Если нужно добавить какую‑то конкретную функцию или изменить логику — уточните, доработаю код.
Metadata
Metadata
Assignees
Labels
No labels