analysis module¶
- analysis.group_by_category(df: DataFrame, transaction_type: str) Series[исходный код]¶
Группирует данные по категориям и вычисляет суммарный объем средств.
Функция фильтрует входной DataFrame по указанному типу транзакций (доход или расход) и суммирует значения в столбце „amount“ для каждой уникальной категории.
- Параметры:
df (pd.DataFrame) – Таблица данных, содержащая столбцы „transaction_type“, „category“ и „amount“.
transaction_type (str) – Тип операции для фильтрации (например, „expense“ или „income“).
- Результат:
Объект Series, где индексами являются названия категорий, а значениями — общие суммы по каждой категории.
- Тип результата:
pd.Series
Пример
>>> # Получение суммы расходов по категориям >>> expenses_by_cat = group_by_category(df, 'expense') >>> print(expenses_by_cat['Еда']) 5000.0
- analysis.plot_income_expence_over_time(df: DataFrame)[исходный код]¶
Визуализирует динамику доходов и расходов во времени.
Функция группирует транзакции по датам и типам, вычисляет ежедневные суммы и строит линейный график. Позволяет наглядно сравнить притоки и оттоки денежных средств на временной шкале.
- Параметры:
df (pd.DataFrame) – Таблица данных. Должна содержать колонки „date“, „transaction_type“ и „amount“. Колонка „date“ должна иметь тип datetime64.
Примечание
Если в определенную дату отсутствует один из типов операций (например, только расходы), функция подставит 0 для корректного отображения графика.
Для корректной работы функции рекомендуется предварительно обработать DataFrame функцией
transactions_to_df().
- Результат:
Функция отображает интерактивное окно с графиком через plt.show().
- Тип результата:
None
- Исключение:
KeyError – Если в DataFrame отсутствуют необходимые колонки.
- analysis.plot_pie_by_category(df: DataFrame, transaction_type: str)[исходный код]¶
Строит круговую диаграмму распределения финансов по категориям.
Функция агрегирует данные для выбранного типа операций (доходы или расходы) и визуализирует процентное соотношение каждой категории в общем объеме. Если данные для указанного типа отсутствуют, график не строится.
- Параметры:
df (pd.DataFrame) – Таблица данных, содержащая как минимум колонки „transaction_type“, „category“ и „amount“.
transaction_type (str) – Тип операций для отображения: „expense“ (расходы) или „income“ (доходы).
Примечание
Функция использует метод plt.show() для отображения графика, что может блокировать выполнение кода в зависимости от настроек бэкенда Matplotlib.
Для корректного отображения меток категорий на русском языке убедитесь, что в Matplotlib настроены шрифты с поддержкой кириллицы.
- Результат:
Функция отображает интерактивное окно с графиком через plt.show().
- Тип результата:
None
- analysis.transactions_to_df(transactions: list) DataFrame[исходный код]¶
Преобразует список объектов транзакций в объект pandas DataFrame.
Функция собирает данные из объектов транзакций и выполняет постобработку: преобразует строковые даты в объекты datetime64, что позволяет в дальнейшем проводить временной анализ (группировку по месяцам, расчет трендов и т.д.).
- Параметры:
transactions (list[Transaction]) – Список экземпляров класса
Transaction.- Результат:
Таблица данных с колонками, соответствующими полям транзакции. Если список пуст, возвращается пустой DataFrame. Колонки результата: „amount“, „category“, „date“, „description“, „transaction_type“.
- Тип результата:
pd.DataFrame
Примечание
Столбец „date“ автоматически конвертируется в формат
pandas.Timestampтолько в том случае, если DataFrame не пуст.Пример
>>> transactions = [Transaction(100.0, "Еда", "2026-01-06")] >>> df = transactions_to_df(transactions) >>> print(df['date'].dtype) datetime64[ns]