Skip to content

Дополнение к коду: вывод статистики и завершение main()#716

@myltik1702

Description

@myltik1702

Дополнение к коду: вывод статистики и завершение 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()

Как использовать обновлённую версию

  1. Установите зависимости (если pandas не установлен):
pip install pandas
  1. Сохраните код в файл ii_grut.py.

  2. Примеры запуска из консоли:

# 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

Новые возможности по сравнению с предыдущей версией

  1. Поддержка форматов: CSV, JSON, Excel (xls/xlsx).
  2. Расширенная фильтрация с операторами: ==, >, <, >=, <=, !=.
  3. Группировка и агрегация по колонкам с функциями: sum, mean, count, min, max.
  4. Два режима статистики:
    • --stats — полная (count, mean, median, stdev, min, max, sum);
    • --basic-stats — только базовая (mean, median, stdev).
  5. Логирование в файл ii_grut.log и консоль.
  6. Удобный вывод результата:
    • сохранение в файл (если указан --output);
    • показ первых 10 строк в консоли (если --output не указан).

Возможные доработки

  • Добавить поддержку SQL‑баз данных.
  • Реализовать визуализацию (графики через matplotlib/seaborn).
  • Добавить валидацию схем данных (например, через pandera).
  • Сделать веб‑интерфейс на Flask/FastAPI.
  • Поддерживать больше форматов (Parquet, XML).

Если нужно добавить какую‑то конкретную функцию или изменить логику — уточните, доработаю код.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions