Непонятки в type df/series на выходе функции
Основной код:
def spending_by_category(transactions: pd.DataFrame,
category: str,
date: Optional[str] = None) -> pd.DataFrame:
"""
Функция вычисления трат по заданной категории за последние 3 месяца от даты.
* transactions - DataFrame с транзакциями
* category - категория, по которой вычисляются траты
* date - дата, от которой ведется исчисление трат за последние 3 месяца
** по умолчанию - сегодня; формат - "YYYY-MM-DD HH:MM:SS"
"""
if not date:
true_date = datetime.datetime.now().replace(microsecond=0)
else:
true_date = datetime.datetime.strptime(date, "%Y-%m-%d %H:%M:%S")
minus_3_months = true_date - relativedelta(months=3)
datetime_df = transactions
datetime_df["Дата операции"] = datetime_df["Дата операции"].apply(
lambda x: datetime.datetime.strptime(x, "%d.%m.%Y %H:%M:%S"))
filtered_by_date_df = datetime_df[
(minus_3_months <= datetime_df["Дата операции"])
& (datetime_df["Дата операции"] <= true_date)
]
filtered_df = filtered_by_date_df[["Категория", "Сумма операции"]]
category_df = filtered_df.groupby("Категория", as_index=False)["Сумма операции"].sum()
result = category_df[category_df["Категория"] == category]
return result
Если прописывать return type(result)
, то он четко выдает <class 'pandas.core.frame.DataFrame'>
.
Однако PyCharm выделяет result
в return
и пишет, что это Series
, а функция на выходе ожидает pd.DataFrame
.
Не заглядывал только в документацию pandas, а ChatGPT и Гугл говорит, что ошибки в коде (с типами данных) быть не должно.