0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как быстро суммировать почасовые данные с ежедневными в Excel?

Постройте график еженедельных данных из DataFrame ежедневных данных

Я хотел бы построить график сообщений по дате, но ежедневные данные слишком шумные, поэтому я хотел бы суммировать сообщения за каждую неделю и построить их вместо этого? Каков самый простой способ достичь этого?

3 ответа

  • Кадр данных pandas, который получает ежедневные данные

У меня есть датафрейм pandas с временными метками в качестве индекса: я хотел бы преобразовать его для получения датафрейма с ежедневными значениями, но без необходимости повторной выборки исходного датафрейма (не для суммирования или усреднения почасовых данных). В идеале я хотел бы иметь 24.

Рассмотрите представленный ниже фрейм данных и постройте график доступа пользователей по годам. Предпочтителен линейный график, где ось x — годы, а ось y — количество доступов в этом году. Следующий кадр данных был скопирован из print df: In: 2016-10-01 1 2015-11-05 2 2017-12-07 3 2016-08-09 4 2015-11-22 5 2016-12-13 6 2017-03-25 7.

В пакете TimeSeries есть несколько утилит для работы с данными временных рядов. Например, вы можете использовать colapsible для преобразования ежедневных данных в еженедельные:

В DataFrames можно использовать groupby с combineby следующим образом:

Если необходимо скользящее среднее, то можно использовать следующую функцию

Это мое предложение, которое позволяет контролировать, какой день вы используете для начала недели (здесь я использую понедельник), а также устойчиво к отсутствующим данным (даты могут повторяться в датасете):

Следует отметить, что производительность труда в 3,5 раза выше, чем при использовании программы Week:

Похожие вопросы:

Я создаю бюджетное приложение в iPhone для составления бюджета личных доходов и расходов. Потребность клиента: я хочу видеть линейный график (например, линейный отчет по фондовому рынку).

Я только что начал работать с классом ts, чтобы проанализировать некоторые имеющиеся у меня данные временного ряда. У меня сложилось впечатление, что класс ts не очень подходит для анализа.

Я создаю еженедельные снимки (около 5-10 МБ) в Excel и ищу лучший способ создания локальной базы данных из объединенных еженедельных дампов Excel. На данный момент Excel, похоже, не может объединять файлы.

У меня есть датафрейм pandas с временными метками в качестве индекса: я хотел бы преобразовать его, чтобы получить датафрейм с ежедневными значениями, но без повторной выборки оригинала.

Читайте так же:
Изменить ссылку на ячейку в формулах на имена диапазонов в Excel

Постройте график доступа пользователей с течением времени на основе приведенного ниже кадра данных. Предпочтительны графики, где ось x представляет годы, а ось y — доступы за каждый год. DataFrame: In: print df.

У меня есть два pandas DataFrames ежедневных данных: import pandas as pd dates = pd.date_range(‘2016-01-01’, ‘2018-01-01’) ndays = len(dates) df1 = pd.DataFrame(np.random.rand(ndays, 3).

Привет у меня есть несколько еженедельных данных dataframe data = <'dates': ['03-01-2020', '10-01-2020', '17-01-2020', '24-01-2020'], 'total': [1,2, 3, 4]>pd.DataFrame.from_dict(data) Я хотел бы.

Здесь у меня есть кадр данных, содержащий ежедневные значения с 2000 года (не обращайте внимания на индекс). Диапазон Дата 6453 13.479 2001-01-01 6454 13.385 2001-01-02 6455 13.418 2001-01-03 6456 13.510.

У меня есть кадр данных, в котором есть несколько строк для каждого дня. Я смог сгруппировать по дням, так что значения в столбце подсчитываются для каждого дня, но я действительно хотел бы сделать следующее

Как быстро суммировать почасовые данные с ежедневными в Excel?

Функция AML суммирует значения. Вы можете суммировать отдельные значения, диапазоны ячеек, ссылки на ячейки или данные из всех трех источников.

=SUM(A2:A10) Складывает значения ячеек A2:10.

( A2:A10, C2:C10) Складывает значения в ячейке A2:10 и в ячейке C2:C10

Браузер не поддерживает видео.

SUMM(имя1 ; [имя2] ;…)

Название аргумента

Первое добавляемое число. Это может быть число 4, ссылка на ячейку, например B6, или диапазон ячеек, например B2:B8.

Нам нужно добавить еще одно число. Вы можете указать до 255 чисел.

В этом разделе содержатся некоторые рекомендации по работе с функцией AMPS. Многие из этих рекомендаций могут быть применены и к другим функциям.

Метод =1+2 или =A+B. Вы можете ввести =1+2+3 или =A1+B1+C2 и получить совершенно точные результаты, но этот метод не является надежным по нескольким причинам.

Опечатки. Предположим, вы пытаетесь ввести много больших значений такого рода:

=14598,93+65437,90+78496,23

Теперь попробуйте проверить правильность записей. Это гораздо проще сделать, задавая эти значения в отдельных ячейках, а затем используя их в формуле для AMPS. Кроме того, значения в ячейках можно отформатировать, чтобы они отображались более четко, чем если бы они были в формуле.

Ошибки #SIGN UP!, если ячейки в ссылках содержат текст вместо чисел

Предположим, что мы используем такую формулу:

Читайте так же:
Как вставить гиперссылки на документы / файлы Word в Excel?

=A1+B1+C1 или =A1+A2+A3

Если ячейки, на которые ссылается формула, содержат нечисловые значения (текст), формула может выдать сообщение об ошибке #NUM! Функция AML опускает текстовые значения и возвращает только сумму числовых значений.

Ошибка #SSLING! при удалении строк или колонок

Ошибка #ССЫЛКА! возникла из-за удаления столбца. Формула приняла вид =A2+#ССЫЛКА!+B2

Удаленная строка или столбец не обновляет формулы, поскольку они не исключают удаленные значения, поэтому возвращается ошибка #SUBSTITUTE results from the deleted row or column. SUMM, в свою очередь, автоматически обновляется.

Формулы не обновляют ссылки при вставке строк и столбцов

Формулы =A+B+C не обновляются при добавлении строк

Когда вы вставляете строку или столбец, формула не обновляется — она не включает добавленную строку, тогда как функция SUM автоматически обновляется (если вы не вышли за пределы диапазона, к которому относится формула). Формула, которая должна обновляться, когда этого не происходит, особенно важна. В этом случае ваши результаты остаются неполными, и вы можете даже не знать об этом.

Разделение ячеек или диапазонов является целью AML.

Используя подобную формулу:

=СУММ(A1;A2;A3;B1;B2;B3)

Вы сохраняете возможность возникновения ошибок при вставке или удалении строк в указанном диапазоне по тем же причинам. Вместо этого используйте отдельные диапазоны, например:

=СУММ(A1:A3;B1:B3)

Формула будет обновляться каждый раз при добавлении или удалении строки.

Мне нужно складывать, вычитать, умножать или делить числа. Смотрите серию обучающих видео: Основные математические операции в Excel или Использование Microsoft Excel в качестве калькулятора.

Как уменьшить или увеличить количество отображаемых десятичных знаков? Вы можете изменить числовой формат. Чтобы вызвать диалоговое окно Формат ячеек, выберите соответствующую ячейку или диапазон, затем нажмите CTRL+1, чтобы открыть вкладку Число. Выберите нужный формат и укажите количество десятичных знаков.

Как складывать или вычитать значения времени? Сложение или вычитание временных значений может быть выполнено несколькими способами. Например, чтобы получить разницу между 8:00 и 12:00 для расчета заработной платы, можно использовать формулу =(«12:00»-«8:00»)*24, то есть вычесть время начала из времени окончания. Обратите внимание, что Excel рассчитывает значения времени как часть дня, поэтому для получения общего количества часов необходимо умножить результат на 24. В первом примере используется формула =((B2-A2)+(D2-C2))*24 для расчета общего количества часов от начала до конца, включая перерыв на обед (8,5 часов).

Вы можете добавить часы и минуты, сложив сумму без умножения на 24. Во втором примере используется формула =CUM(A6:C6), потому что достаточно подсчитать общее количество минут и часов, потраченных на выполнение задач (5:36. 5 часов и 36 минут).

Читайте так же:
Как включить / выключить блокировку прокрутки в Excel?

Расчет времени

Как получить разницу между датами? Сложение и вычитание значений дат аналогично сложению и вычитанию значений времени. Вот пример расчета количества дней между двумя датами. Формула =B2-A2. При работе со значениями даты и времени начальную дату или время следует вычитать из конечной даты или времени.

Вычисление разницы между датами

О других способах работы с датами см. раздел Вычисление разницы между двумя датами.

Как вычислить сумму только видимых ячеек? Иногда, когда вы вручную скрываете строки или используете автофильтр для отображения только некоторых данных, вам может понадобиться вычислить сумму только видимых ячеек. Это можно сделать с помощью функции TOTAL.TOTAL. Если на рабочем листе Excel используется строка Суммы, любая функция, выбранная из раскрывающегося списка ИТОГО, будет автоматически введена в качестве промежуточной суммы. Для получения дополнительной информации см. статью Суммирование данных в электронной таблице Excel.

Дополнительные сведения

Если вам нужна помощь, вы всегда можете задать вопрос эксперту Excel Tech Community или разместить ответ в разделе «Ответы».

Преобразование почасовых данных в ежедневные и двухдневные в группах элементов

Несмотря на то, что этот вопрос не нов, моя ситуация включает в себя некоторые особенности, которые предыдущие ответы не рассмотрели должным образом.

В кадре данных ‘df’ содержится 14 миллионов элементов, имеющих следующий формат:

Структура df имеет следующую структуру:

Классов data.table » и «data.frame’: 14103024 обс. из 3-х переменных: $ ID: chr «1459» «1459» . $ datetime : POSIXct, format: «2013-01-08 00:00:00» «2013-01-08 01:00:00» . $ measurem: num 2.24 2 2.54 .

Я хотел бы преобразовать данные об измеренной энергии из еженедельных в ежедневные, взяв количество, а затем в два дня (один замер до 12 часов ночи, другой до 12 часов дня), сохранив столбец ID и дату. Поскольку полный кадр данных слишком велик, я буду признателен за любое предложение, которое можно реализовать относительно быстро.

Заранее спасибо!

2 ответа

  • Сортировка элементов списка по разным группам в C#

Мне нужна логическая помощь: у меня есть коллекция элементов listview, которые нужно разделить на различные группы в соответствии с их категорией (listviewitem.tag.tostring()) forexample: У меня есть 10 элементов в виде списка с тегами «еда» «овощи» «напитки» и т.д.

Читайте так же:
Как автоматически увеличивать значение ячейки после каждой печати?

У меня есть почасовые данные за один год. Я хотел бы извлечь из него ежедневный максимум, ежедневное среднее значение и т.д., поэтому я обратился за помощью сюда. Я столкнулся со следующей проблемой: преобразование почасовых данных об осадках в ежедневные данные за определенный промежуток времени, которую я не мог понять.

Если я правильно понимаю, я предполагаю, что вы хотите суммировать столбец «measurem» на основе ID, даты и AM/PM. Поскольку в вопросе нет данных для примера, я составил свой собственный, чтобы определить это:

ДАННЫЕ

Решение и выход из ситуации:.

1) data.table способ:

2) Основной путь Р:

O P запросил предложения, которые могли бы работать относительно быстро, поскольку производственный набор данных состоит из 14 М строчек.

К сожалению, выбранный ответ PKumar довольно неэффективен с точки зрения скорости и потребления оперативной памяти:

  • Создает несколько опорных векторов, которые добавляются как новые столбцы в df, поэтому они хранятся дважды
  • Каждое обновление df копирует весь объект
  • Решение data.table не использует синтаксис data.table, чтобы избежать операций копирования
  • POSIXlt требуется 52 байта для хранения одного экземпляра даты и времени, а POSIXct — только 8 байт

Вот мой вариант использования data.table :

Данные

Показатель

Мы создали образцы наборов данных для 100 уникальных идентификаторов и 365 дней почасовых данных для сравнительного анализа. Каждый набор данных содержит 876 K строк. Поскольку некоторые решения изменяют набор данных, copy() используется для воспроизведения ненарушенного набора данных для каждого запуска. copy() также синхронизируется.

Даже при решении этой задачи среднего размера базовое решение R на порядок медленнее, чем версии data.table. Неэффективное манипулирование данными в решении PKumar data.table приводит к снижению производительности на 50%. Более того, 56 МБ выделяются неиспользуемым образом, в то время как df требуется только 17 МБ.

  • Агрегирование почасовых данных в ежедневные агрегаты с отсутствующими значениями в R

Мой фрейм данных RH имеет почасовые данные, и я хочу преобразовать их в ежедневные максимальные и минимальные данные. Используя этот код, вы можете агрегировать почасовые данные в ежедневные агрегаты [вопрос].

Есть ли способ сделать так, чтобы почасовые данные имели 0:00 в качестве конца дня, а не 23:00? Эта проблема возникает, когда я использую period.apply или to.period, так как оба возвращают дни, которые заканчиваются в 23:00. Вот пример: x1 = xts(seq(as. POSIXct(2018-02-01 00:00:00), as. POSIXct(2018-02-05 23:00:00).

Читайте так же:
Как вставить внешний контент в Excel всегда в соответствии с форматированием места назначения?
Похожие вопросы:

Недавно я спросил, как преобразовать календарные недели в список дат, и получил отличный и самый полезный ответ: преобразовать календарные недели в ежедневные даты. Я попытался применить описанный способ.

Мне доступны почасовые данные, а также температура и осадки. Из часовых данных я хотел бы получить ежедневные значения. Я изучаю ежедневные средние значения с 07:00:00 до следующего дня.

Есть почасовые данные, которые заносятся в мою таблицу. Эти данные необходимо суммировать за день. У меня есть таблица, в которой есть данные за 12.03.2010 01.pm | 10 | 12.03.2010 02.pm.

У меня есть коллекция элементов listview, которые нужно разделить на различные группы в соответствии с их тегом (listviewitem.tag.tostring()).

Имеются почасовые данные о погоде за год. Извлечение дневных максимумов, средних значений и т.д. — одно из моих любимых занятий, поэтому я искал помощи здесь. Тема, на которую я наткнулся, привлекла мое внимание.

Вот описания изображений: [Введите описание изображения здесь][1] [Введите описание изображения здесь][2] У меня есть кадр данных RH с почасовыми данными, и я хотел бы преобразовать его в ежедневные максимальные и минимальные значения.

При создании почасовых данных как можно установить 0:00 в качестве конца дня вместо 23:00? Это та же проблема, когда я использую period.apply и to.period, поскольку оба возвращают дни, заканчивающиеся в 23:00.

Сценарий: У меня есть код, который считывает данные из других файлов и импортирует их в различные листы. Некоторые из этих файлов содержат данные в месячном формате, другие — в формате.

У нас есть две матрицы. Назовите один из них Date, а другой Data Матрица даты имеет несколько столбцов: год месяц день юлуси время 1951 1 1 0 1951 1 1 3 1951 1 1 1 6 1951 1 1 9 1951 1 1 1.

Моя цель — сопоставить ежедневные данные с почасовыми. Если данные в столбце B совпадают с данными в столбце A, независимо от часа (0-23), они должны быть введены.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector