Форум сайта python.su
Друзья, прошу вашей помощи! Очень нужно, а своих мозгов не хватает.
Читаю данные из БД во фрейм. У записи есть ИМЯ и МЕТКА времени. Мне нужно для каждого ИМЕНИ получить последнюю запись по МЕТКЕ.
Подскажите, пож-та, конструкцию!
Офлайн
покажите структуру и что хотите получить
Офлайн
BegimotПриведи полный код.
Читаю данные из БД во фрейм.
Офлайн
Коллеги, конечно сам исходный фрейм огромный.
Я покажу маленькой фрагмент.
Если надо выложить иначе, то напишите, сделаю.
Вот базовый фрейм (фрагмент):
tag_name date_ot_data value
TagName_1 2023-01-01 03:00:00.000 +0300 19555
TagName_1 2023-01-01 03:10:00.000 +0300 45555
TagName_1 2023-01-01 03:20:00.000 +0300 10511
TagName_2 2023-01-01 03:00:00.000 +0300 334
TagName_2 2023-01-01 03:10:00.000 +0300 335
TagName_3 2023-01-01 03:00:00.000 +0300 3333
TagName_3 2023-01-01 03:10:00.000 +0300 2222
TagName_3 2023-01-01 03:20:00.000 +0300 3444
А получить надо это:
TagName_1 2023-01-01 03:20:00.000 +0300 10511
TagName_2 2023-01-01 03:10:00.000 +0300 335
TagName_3 2023-01-01 03:20:00.000 +0300 3444
В принципе, мне будет достаточно, если вы меня в нужную сторону толкнете. Далее, я сам соображу.
Отредактировано Begimot (Ноя. 30, 2023 02:38:23)
Офлайн
BegimotТы привёл пример данных. А теперь выложи код, которым ты эти данные читаешь из БД во фрейм.
Если надо выложить иначе, то напишите, сделаю.
BegimotВидишь ли, я не знаю, чем ты обрабатываешь данные. Ты никакого кода не привёл. Если ты обрабатываешь pandas'ом, то он не становится от этого стандартом каким-то. Модуль pandas не является частью питона. Это сторонний модуль, который никак к самому питону не относится и разрабатывается вообще другими людьми. И понятие “фрейм” есть не только в этом модуле, потому что pandas'а не было, а понятие это было уже и много-много лет. И ты, таким образом, предлагаешь наугад нам тебе что-то там советовать.
В принципе, мне будет достаточно, если вы меня в нужную сторону толкнете.
Begimothttps://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.groupby.html
В принципе, мне будет достаточно, если вы меня в нужную сторону толкнете.
Отредактировано py.user.next (Ноя. 30, 2023 06:42:38)
Офлайн
Попробуем наугад
df = pd.DataFrame(data) df['date_of_data'] = pd.to_datetime(df['date_of_data'], format='%Y-%m-%d %H:%M:%S.%f %z') # Find rows with max values for each tag result = df.loc[df.groupby('tag_name')['value'].idxmax(), ['tag_name', 'date_of_data']]
Офлайн
Друзья, спасибо!
Мне хватило, я все понял!
Офлайн
Угадал что ли?
Офлайн
Нет, просто понял идею, которую ты написал.
Спасибо!
Офлайн