Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 28, 2023 06:21:27

Begimot
Зарегистрирован: 2023-11-28
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Pandas. Последнее значение по дате для каждого тега

Друзья, прошу вашей помощи! Очень нужно, а своих мозгов не хватает.
Читаю данные из БД во фрейм. У записи есть ИМЯ и МЕТКА времени. Мне нужно для каждого ИМЕНИ получить последнюю запись по МЕТКЕ.
Подскажите, пож-та, конструкцию!

Офлайн

#2 Ноя. 28, 2023 09:29:19

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Pandas. Последнее значение по дате для каждого тега

покажите структуру и что хотите получить



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Ноя. 28, 2023 11:30:08

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9863
Репутация: +  853  -
Профиль   Отправить e-mail  

Pandas. Последнее значение по дате для каждого тега

Begimot
Читаю данные из БД во фрейм.
Приведи полный код.



Офлайн

#4 Ноя. 30, 2023 02:36:03

Begimot
Зарегистрирован: 2023-11-28
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Pandas. Последнее значение по дате для каждого тега

Коллеги, конечно сам исходный фрейм огромный.
Я покажу маленькой фрагмент.
Если надо выложить иначе, то напишите, сделаю.

Вот базовый фрейм (фрагмент):

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)

Офлайн

#5 Ноя. 30, 2023 06:41:35

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9863
Репутация: +  853  -
Профиль   Отправить e-mail  

Pandas. Последнее значение по дате для каждого тега

Begimot
Если надо выложить иначе, то напишите, сделаю.
Ты привёл пример данных. А теперь выложи код, которым ты эти данные читаешь из БД во фрейм.

Begimot
В принципе, мне будет достаточно, если вы меня в нужную сторону толкнете.
Видишь ли, я не знаю, чем ты обрабатываешь данные. Ты никакого кода не привёл. Если ты обрабатываешь pandas'ом, то он не становится от этого стандартом каким-то. Модуль pandas не является частью питона. Это сторонний модуль, который никак к самому питону не относится и разрабатывается вообще другими людьми. И понятие “фрейм” есть не только в этом модуле, потому что pandas'а не было, а понятие это было уже и много-много лет. И ты, таким образом, предлагаешь наугад нам тебе что-то там советовать.

Я вот прокопаю поисковую систему за тебя, найду всё про pandas, выложу тебе подсказку и ты в итоге скажешь “а я вотя не в пандясе это деляю, у меня фрейм - это вообще рамка просто”. А зачем я тогда время тратил? Чтобы ты мне в итоге сказал, что это вообще не то?

Begimot
В принципе, мне будет достаточно, если вы меня в нужную сторону толкнете.
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.groupby.html



Отредактировано py.user.next (Ноя. 30, 2023 06:42:38)

Офлайн

#6 Ноя. 30, 2023 07:21:18

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Pandas. Последнее значение по дате для каждого тега

Попробуем наугад

 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']]


поля свои только впиши



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#7 Ноя. 30, 2023 09:40:05

Begimot
Зарегистрирован: 2023-11-28
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Pandas. Последнее значение по дате для каждого тега

Друзья, спасибо!
Мне хватило, я все понял!

Офлайн

#8 Ноя. 30, 2023 15:11:31

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Pandas. Последнее значение по дате для каждого тега

Угадал что ли?



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#9 Дек. 1, 2023 07:19:41

Begimot
Зарегистрирован: 2023-11-28
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Pandas. Последнее значение по дате для каждого тега

Нет, просто понял идею, которую ты написал.
Спасибо!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version