get_series_by_id_and_columns функционален
This commit is contained in:
@@ -6,7 +6,7 @@ from typing import Dict, Tuple
|
|||||||
from core.ports import ParserPort
|
from core.ports import ParserPort
|
||||||
from core.schema_utils import register_getter_from_schema, validate_params_with_schema
|
from core.schema_utils import register_getter_from_schema, validate_params_with_schema
|
||||||
from app.schemas.monitoring_fuel import MonitoringFuelTotalRequest, MonitoringFuelMonthRequest, MonitoringFuelSeriesRequest
|
from app.schemas.monitoring_fuel import MonitoringFuelTotalRequest, MonitoringFuelMonthRequest, MonitoringFuelSeriesRequest
|
||||||
from adapters.pconfig import data_to_json
|
from adapters.pconfig import data_to_json, get_object_by_name
|
||||||
|
|
||||||
# Настройка логгера для модуля
|
# Настройка логгера для модуля
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -179,7 +179,12 @@ class MonitoringFuelParser(ParserPort):
|
|||||||
data = row.get('data')
|
data = row.get('data')
|
||||||
|
|
||||||
if month and data is not None:
|
if month and data is not None:
|
||||||
data_dict[month] = data
|
# data уже является DataFrame, поэтому используем его напрямую
|
||||||
|
if isinstance(data, pd.DataFrame):
|
||||||
|
data_dict[month] = data
|
||||||
|
else:
|
||||||
|
# Если data не DataFrame, пропускаем
|
||||||
|
logger.warning(f"Данные за месяц {month} не являются DataFrame, пропускаем")
|
||||||
|
|
||||||
return data_dict
|
return data_dict
|
||||||
|
|
||||||
@@ -295,10 +300,10 @@ class MonitoringFuelParser(ParserPort):
|
|||||||
|
|
||||||
# Проверяем, что колонка 'name' существует
|
# Проверяем, что колонка 'name' существует
|
||||||
if 'name' in df_full.columns:
|
if 'name' in df_full.columns:
|
||||||
# Применяем функцию get_id_by_name к каждой строке в колонке 'name'
|
# Применяем функцию get_object_by_name к каждой строке в колонке 'name'
|
||||||
# df_full['id'] = df_full['name'].apply(get_object_by_name) # This line was removed as per new_code
|
df_full['id'] = df_full['name'].apply(get_object_by_name)
|
||||||
# Временно используем name как id
|
# Удаляем строки, где не удалось найти ID
|
||||||
df_full['id'] = df_full['name']
|
df_full = df_full.dropna(subset=['id'])
|
||||||
else:
|
else:
|
||||||
# Если нет колонки name, создаем id из индекса
|
# Если нет колонки name, создаем id из индекса
|
||||||
df_full['id'] = df_full.index
|
df_full['id'] = df_full.index
|
||||||
|
|||||||
@@ -128,15 +128,8 @@ def render_monitoring_fuel_tab():
|
|||||||
# Показываем количество найденных ID
|
# Показываем количество найденных ID
|
||||||
st.info(f"📊 Найдено {len(series_data)} объектов")
|
st.info(f"📊 Найдено {len(series_data)} объектов")
|
||||||
|
|
||||||
# Создаем DataFrame для отображения
|
# Показываем JSON данные
|
||||||
df_series = pd.DataFrame(series_data).T
|
st.json(result)
|
||||||
df_series.index.name = 'ID объекта'
|
|
||||||
|
|
||||||
st.dataframe(df_series, use_container_width=True)
|
|
||||||
|
|
||||||
# Показываем JSON для отладки
|
|
||||||
with st.expander("🔍 JSON данные"):
|
|
||||||
st.json(result)
|
|
||||||
else:
|
else:
|
||||||
st.warning("⚠️ Данные не найдены")
|
st.warning("⚠️ Данные не найдены")
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user