Найти - Пользователи
Полная версия: Pandas. Последнее значение по дате для каждого тега
Начало » Python для новичков » Pandas. Последнее значение по дате для каждого тега
1
Begimot
Друзья, прошу вашей помощи! Очень нужно, а своих мозгов не хватает.
Читаю данные из БД во фрейм. У записи есть ИМЯ и МЕТКА времени. Мне нужно для каждого ИМЕНИ получить последнюю запись по МЕТКЕ.
Подскажите, пож-та, конструкцию!
ZerG
покажите структуру и что хотите получить
py.user.next
Begimot
Читаю данные из БД во фрейм.
Приведи полный код.
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

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

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

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

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

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


поля свои только впиши
Begimot
Друзья, спасибо!
Мне хватило, я все понял!
ZerG
Угадал что ли?
Begimot
Нет, просто понял идею, которую ты написал.
Спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB