pandas количество дней между датами

Python: Получить количество дней между датами

В этом уроке мы рассмотрим, как получить количество дней между двумя датами в Python, используя модуль datetime и объекты timedelta, а также сложение и вычитание фиксированных таймфреймов.

Python: Получить количество дней между датами

Вступление

Создание объекта Datetime

Поскольку datetime-это встроенный модуль, вы можете получить к нему доступ сразу же, импортировав его в верхнюю часть вашего файла Python.

Вы можете создавать объекты datetime несколькими различными способами:

Получить Количество дней между датами в Python

Попытка измерить количество дней между датами без использования модуля datetime является обманчиво сложной задачей – между учетом високосных лет и количеством дней в каждом месяце пытаться создать свою собственную реализацию бессмысленно.

Однако с датой и временем это становится тривиальным.

Вы можете просто вычесть a date или datetime друг из друга, чтобы получить количество дней между ними:

Печать этого объекта вернет дни, часы, минуты, секунды и микросекунды к этому событию:

Затем мы можем просто получить доступ к параметру days этого объекта, чтобы получить количество дней между ними. Это приводит к:

Добавление и Вычитание дней С помощью TimeDelta

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

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

Это невероятно полезная функция при попытке реализовать планирование или извлечение записей базы данных на основе движущегося окна (например, трейлинг-30 дней).

Вывод

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

Мы работали с объектами datetime и timedelta для достижения этой функциональности.

Источник

Манипуляции с датой и временем в Python с помощью Pandas

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Основы библиотеки DateTime

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

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Или, если вам она нужна, можно указать значения.

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Разница во времени

Объявим переменную и установим ее значение на текущее время.

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Затем объявим другую переменную и устанавливаем ее значение на текущее время минус значение переменной current_time.

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

В результате мы получили объект timedelta. показывающий, сколько времени прошло между объявлением этих двух переменных. Можно с легкостью получить доступ к этой информации.

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Перевод string в в datetime и наоборот

Библиотека datetime включает в себя два метода для преобразования строк в объекты datetime и наоборот. Чтобы преобразовать строку в объект datetime, нужно использовать функцию strptime().

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Диапазоны дат в Pandas

При работе с датами я чаще использую библиотеку Python datetime. Но кроме этих случаев:

Второй случай заслуживает отдельной статьи, поэтому я остановлюсь на первом.

Я использую библиотеку Pandas для создания диапазонов дат, чтобы избежать циклов при использовании стандартной библиотеки. Например, чтобы создать 30-дневный массив дат, начинающийся с 1 января 2020 года.

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Видите, как легко?

При этом не нужно придерживаться определенного форматирования. Библиотека Pandas достаточно умна, чтобы понять, что именно вы имели в виду

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Это также будет отлично работать.

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Даже какая-то сумасшедшая комбинация не будет проблемой.

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

И напоследок

Этих знаний достаточно для объявления даты и времени и работы с ними в Python. Их достаточно для выполнения большинства задач.

Пожалуйста, опубликуйте свои мнения по текущей теме материала. За комментарии, подписки, лайки, дизлайки, отклики низкий вам поклон!

Источник

Моя шпаргалка по pandas

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

Возможность быстро находить описания функций позволяет программистам продуктивно работать, не теряя состояния потока. Поэтому я и создал представленную здесь шпаргалку по pandas и включил в неё то, чем пользуюсь каждый день, создавая веб-приложения и модели машинного обучения.

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

1. Подготовка к работе

Если вы хотите самостоятельно опробовать то, о чём тут пойдёт речь, загрузите набор данных Anime Recommendations Database с Kaggle. Распакуйте его и поместите в ту же папку, где находится ваш Jupyter Notebook (далее — блокнот).

Теперь выполните следующие команды.

После этого у вас должна появиться возможность воспроизвести то, что я покажу в следующих разделах этого материала.

2. Импорт данных

▍Загрузка CSV-данных

Здесь я хочу рассказать о преобразовании CSV-данных непосредственно в датафреймы (в объекты Dataframe). Иногда при загрузке данных формата CSV нужно указывать их кодировку (например, это может выглядеть как encoding=’ISO-8859–1′ ). Это — первое, что стоит попробовать сделать в том случае, если оказывается, что после загрузки данных датафрейм содержит нечитаемые символы.

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

▍Создание датафрейма из данных, введённых вручную

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

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Данные, введённые вручную

▍Копирование датафрейма

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

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

3. Экспорт данных

▍Экспорт в формат CSV

При экспорте данных они сохраняются в той же папке, где находится блокнот. Ниже показан пример сохранения первых 10 строк датафрейма, но то, что именно сохранять, зависит от конкретной задачи.

4. Просмотр и исследование данных

▍Получение n записей из начала или конца датафрейма

Сначала поговорим о выводе первых n элементов датафрейма. Я часто вывожу некоторое количество элементов из начала датафрейма где-нибудь в блокноте. Это позволяет мне удобно обращаться к этим данным в том случае, если я забуду о том, что именно находится в датафрейме. Похожую роль играет и вывод нескольких последних элементов.

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Данные из начала датафрейма

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Данные из конца датафрейма

▍Подсчёт количества строк в датафрейме

▍Подсчёт количества уникальных значений в столбце

Для подсчёта количества уникальных значений в столбце можно воспользоваться такой конструкцией:

▍Получение сведений о датафрейме

В сведения о датафрейме входит общая информация о нём вроде заголовка, количества значений, типов данных столбцов.

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Сведения о датафрейме

▍Вывод статистических сведений о датафрейме

Знание статистических сведений о датафрейме весьма полезно в ситуациях, когда он содержит множество числовых значений. Например, знание среднего, минимального и максимального значений столбца rating даёт нам некоторое понимание того, как, в целом, выглядит датафрейм. Вот соответствующая команда:

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Статистические сведения о датафрейме

▍Подсчёт количества значений

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

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Подсчёт количества элементов в столбце

5. Извлечение информации из датафреймов

▍Создание списка или объекта Series на основе значений столбца

Это может пригодиться в тех случаях, когда требуется извлекать значения столбцов в переменные x и y для обучения модели. Здесь применимы следующие команды:

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Результаты работы команды anime[‘genre’].tolist()

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Результаты работы команды anime[‘genre’]

▍Получение списка значений из индекса

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Результаты выполнения команды

▍Получение списка значений столбцов

Вот команда, которая позволяет получить список значений столбцов:

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Результаты выполнения команды

6. Добавление данных в датафрейм и удаление их из него

▍Присоединение к датафрейму нового столбца с заданным значением

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

▍Создание нового датафрейма из подмножества столбцов

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

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Результат выполнения команды

▍Удаление заданных столбцов

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

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Результаты выполнения команды

▍Добавление в датафрейм строки с суммой значений из других строк

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Результат выполнения команды

Команда вида df.sum(axis=1) позволяет суммировать значения в столбцах.

7. Комбинирование датафреймов

▍Конкатенация двух датафреймов

Эта методика применима в ситуациях, когда имеются два датафрейма с одинаковыми столбцами, которые нужно скомбинировать.

В данном примере мы сначала разделяем датафрейм на две части, а потом снова объединяем эти части:

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Датафрейм, объединяющий df1 и df2

▍Слияние датафреймов

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Результаты выполнения команды

8. Фильтрация

▍Получение строк с нужными индексными значениями

Индексными значениями датафрейма anime_modified являются названия аниме. Обратите внимание на то, как мы используем эти названия для выбора конкретных столбцов.

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Результаты выполнения команды

▍Получение строк по числовым индексам

Следующая конструкция позволяет выбрать три первых строки датафрейма:

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Результаты выполнения команды

▍Получение строк по заданным значениям столбцов

Для получения строк датафрейма в ситуации, когда имеется список значений столбцов, можно воспользоваться следующей командой:

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Результаты выполнения команды

Если нас интересует единственное значение — можно воспользоваться такой конструкцией:

▍Получение среза датафрейма

Эта техника напоминает получение среза списка. А именно, речь идёт о получении фрагмента датафрейма, содержащего строки, соответствующие заданной конфигурации индексов.

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Результаты выполнения команды

▍Фильтрация по значению

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

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Результаты выполнения команды

9. Сортировка

Для сортировки датафреймов по значениям столбцов можно воспользоваться функцией df.sort_values :

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Результаты выполнения команды

10. Агрегирование

▍Функция df.groupby и подсчёт количества записей

Вот как подсчитать количество записей с различными значениями в столбцах:

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Результаты выполнения команды

▍Функция df.groupby и агрегирование столбцов различными способами

▍Создание сводной таблицы

Для того чтобы извлечь из датафрейма некие данные, нет ничего лучше, чем сводная таблица. Обратите внимание на то, что здесь я серьёзно отфильтровал датафрейм, что ускорило создание сводной таблицы.

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Результаты выполнения команды

11. Очистка данных

▍Запись в ячейки, содержащие значение NaN, какого-то другого значения

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Таблица, содержащая значения NaN

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Результаты замены значений NaN на 0

12. Другие полезные возможности

▍Отбор случайных образцов из набора данных

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Результаты выполнения команды

▍Перебор строк датафрейма

Следующая конструкция позволяет перебирать строки датафрейма:

pandas количество дней между датами. Смотреть фото pandas количество дней между датами. Смотреть картинку pandas количество дней между датами. Картинка про pandas количество дней между датами. Фото pandas количество дней между датами

Результаты выполнения команды

▍Борьба с ошибкой IOPub data rate exceeded

Если вы сталкиваетесь с ошибкой IOPub data rate exceeded — попробуйте, при запуске Jupyter Notebook, воспользоваться следующей командой:

Итоги

Здесь я рассказал о некоторых полезных приёмах использования pandas в среде Jupyter Notebook. Надеюсь, моя шпаргалка вам пригодится.

Источник

Разница между двумя датами в Pandas DataFrame

У меня есть много столбцов во фрейме данных, и я должен найти разницу во времени в двух столбцах с именами in_time и out_time и поместить ее в новый столбец в том же фрейме данных.

Я использую Pandas DataFrame.

Я хочу сделать вот так:

У меня много столбцов, и я должен увеличить еще 1 столбец в нем с именем days и поместить туда различия.

2 ответа

Вам нужно преобразовать строки в datetime dtype, затем вы можете вычесть любую произвольную дату, которую вы хотите, и в результирующем ряду вызвать dt.days :

Если in_time и out_time в настоящее время являются строками, преобразуйте их с помощью datetime.strptime() :

а затем вы можете просто вычесть их и присвоить результат новому столбцу с именем ‘days’:

Пример: (разница в 3 секунды и 1 день)

И создание новой колонки:

Теперь вы можете играть с выходным форматом. Например, часть разницы в секундах:

Примечание 2: Очевидно, было бы лучше, если бы вы могли спроектировать свою программу так, чтобы использовать datetime с самого начала (вместо того, чтобы использовать строки и преобразовывать их).

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

Допустим, у меня есть пустой pandas dataframe. import pandas as pd m = pd.DataFrame(index=range(1,100), columns=range(1,100)) m = m.fillna(0) В чем разница между следующими двумя командами? m[2][1].

Привет, ребята, мне нужно получить разницу между двумя датами в виде десятичной дроби. Пример: разница между 13 февраля 2010 года и 10 июня 2011 года составляет 15.87 месяцев. Как бы я сделал это в.

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

Ниже приведен пример образца pandas dataframe. Я пытаюсь найти разницу между датами в двух строках (с первой строкой в качестве основы): PH_number date Type H09879721 2018-05-01 AccountHolder.

Источник

Numpy DateTime: Как работать с датами и временем в Python?

Полное учебное пособие np.dateTime64. Все, что вам нужно знать, чтобы начать …

В этой статье мы узнаем о чем-то, что буквально везде. Какой бы угол вы поворачиваетесь, какая бы улица вы бежали, вы не можете уйти от него. Это как повсеместно, как физическое пространство вокруг нас. Да сегодня мы говорим о … время. Более конкретно, мы говорим о Функции Numpy, которые представляют даты и времена Отказ

Упражнение : Создайте объекты Numpy DateTime от вашего дня рождения! Теперь рассчитайте количество дней, которые прошли с тех пор.

Когда я впервые услышал о Numpy’s datetime Библиотека, я не думал, что это было большое дело. Почему нам нужны специальные функции, чтобы иметь дело с датами? Они довольно просты, не можем просто использовать строки, такие как ‘2019/01/01’ И сделать с этим?

Ну, молодая версия меня, оказывается, они довольно сложны, и мы не можем «просто использовать строки» …

Если вы не уверены, попробуйте ответить на любой из следующих вопросов, используя «просто строки»:

Очевидно, нам нужны даты и времена, чтобы иметь свои собственные функции. И не волнуйтесь, мы ответим на все эти вопросы к концу статьи.

Вы хотите стать Numpy Master? Проверьте нашу интерактивную книгу головоломки Coffe Break Numpy И повысить свои навыки науки о данных! (Ссылка Amazon открывается на новой вкладке.)

Нежное введение

Хотя мы не можем «просто использовать Строки «Представлять даты и времена, мы будем использовать строки в качестве ввода к основной функции, с которой мы будем работать: np.dateTime64 () Отказ

Примечание : то 64 означает, что цифры 64 бита.

Numpy использует сокращения следующих (здравых смыслов) для единиц времени, обратите внимание на капитализацию, где это происходит:

ГодыY
МесяцыM
НеделиW
ДниD
Часыh
Минутm
Секундыs
МиллисекундыРС
Microconds (поскольку μs (греческая буква «MU») так, как мы передаем ее, и «U» выглядит ближе всего к этому на английском языке).нас

Формат ввода – ISO 8601

Разные страны пишут своими даты по-разному. В Европе 06/10/18 – 6 октября, а в Америке 10 июня. Лично, это может быть раздражает, но в бизнесе, это критично (представьте, что ваша программа работает до 6 октября, когда вы хотели, чтобы она остановилась 10 июня)! Итак, нам нужен стандартизированный вход для наших функций. К счастью, глобальный стандарт уже существует ISO 8601 Отказ

Это легко вспомнить, как даты и времена идут налево, направо от большого до маленького. Это будет важно позже, когда мы сделаем арифметику с datetime объекты.

Чтобы ввести это на Numpy, мы можем либо

Я предпочитаю первый метод, так как легче читать. Но обратите внимание, что если вы распечатаете любой np.dateTime64 Функции, Numpy всегда вставляют T Отказ

Теперь пришло время для наших первых примеров (я пытался выбрать даты, которые легко читать для обучения).

Рекантралирование

Учитывая конкретное значение dateTime, вы можете изменить его в определенный момент времени, введя его в качестве второго параметра.

Например, скажем, у нас есть определенный день, но только хочу месяц:

Обратите внимание, что часть DD для HOURE_FROM_MONH и HOURE_FROM_DAY разные. Первый имеет 01 и последний 22. Это потому, что numpy возвращается к значениям по умолчанию, если никто не указан. Это логически, 01 для M и D и 0 для переменных времени.

Арифметика DateTime

Теперь у нас есть абсолютные основы вниз, так что пришло время выдержать его на выемку. Можете ли вы ответить на следующий вопрос?

Что наступает дальше после 12 вечера 12 декабря 1999 года?

В зависимости от единицы времени вы рассчитываете, это может быть что-нибудь:

Как мы уже видели, каждый np.dateTime64 Объект имеет единицу времени, связанный с ним. Поэтому, если мы ‘+ 5’ на наш объект «день», мы пойдем вперед 5 дней. И если мы ‘- 5’ с нашего месяца объекта, мы пойдем назад 5 месяцев:

Но что, если мы хотим посмотреть на Рождественский день каждый год за последние 50 лет? Мы не можем начать с 2018-12-25 и «- 1», потому что это прилагает временную единицу «D», и поэтому дает нам 2018-12-24.

Numpy решил эту проблему, введя другую функцию с помощью прохладной фамилии: np.timedelta64 Отказ

np.timedelta64.

Любая арифметика, которая сложнее, чем добавление или вычитание целые числа включает в себя np.timedelta64 Отказ Уравнение либо вернет np.timedelta64 объект или вам нужно будет использовать один, чтобы получить результат.

Если вы все поняли до этого момента, вы легко поймете это. Это лучше всего объяснено в примерах.

Количество дней с 1 января 2013 года и 1 января 2012 года 366, так как это был скачок года.

Каждый np.timedelta64 () Объект принимает одно целое и однократное устройство. Таким образом, чтобы добавить через 4 месяца и 3 дня, у вас есть два варианта.

Первый – использовать два экземпляра np.timedelta64 :

Второе – преобразовать отдельный np.timedelta64 объекты в один с использованием разделения (или модуло):

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

Большинство людей согласились бы, что через месяц после 31 января 28 февраля. Но что через месяц после 28 февраля? 28 марта или 31 марта? Так что numpy бросает ошибку, если вы попытаетесь изменить месяц/год np.dateTime64 объект со временным устройством ‘D’ или меньше.

Как только мы получим более точные, значения месяца и года не являются постоянными, а Numpy бросает ошибку.

Мы теперь оснащены, чтобы построить список любых дат и времена нашего сердца! Итак, давайте построим один, содержащий все рождественские дни за последние 50 лет. Мы начнем с последних декабря. 2018-12 и повторяйте через него 50 раз назад. Для первой итерации мы вычвеем один год (чтобы получить 2017 год), для второго мы вычитаем 2 года (чтобы получить 2016 год) и так далее. Наконец, в каждой итерации мы добавляем 24 дня (поскольку день по умолчанию 01). Мы сделаем все это, используя один из наиболее любимых аспектов Python: понимание списка!

Теперь мы знаем ответы на вопросы 1 и 2, которые я спросил в начале.

Но как насчет вопроса 3? Это было о рабочих днях, поэтому давайте узнаем о них сейчас.

Сколько рабочих дней между двумя днями?

Мы можем создать любой список данных DateTimes, используя инструменты выше. Но есть несколько вещей, которые мы можем использовать, чтобы упростить нашу жизнь.

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

К счастью, Numpy обрабатывает это, используя концепцию рабочих дней с np.busday () функция.

Но во-первых, нам нужно покрыть всеобъемлющую концепцию.

Недели

Центральная к этим функциям является ключевым словом «Weekmass». Эта переменная определяет, какие дни считаются рабочими днями.

Следующие еженедельники все установили рабочие дни в понедельник, вторник, среду, четверг и пятницу (поведение по умолчанию):

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

Примечание: вход в np.busday Функции не строка, а скорее np.dateTime64 () объект.

np.is_busday ()

Возвращает логическое значение: Правда Если день это рабочий день, Ложь Если это не так.

Примечание. Вы можете использовать эту функциональность для создания списков любого определенного дня. Просто установите Weekmask в интересные дни и используйте np.is_busday (), чтобы выбрать соответствующие.

np.busday_count ()

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

Теперь мы можем ответить на вопрос 3:

np.busday_offset ()

Возвращает действующий рабочий день в соответствии с правилом ролика и количество дней для компенсации.

Мы будем использовать это, чтобы найти ближайший рабочий день для любой даты, которую мы передаем к этой функции.

Например, мы хотим найти цену фондового рынка 18 мая 2019 года. Это невозможно, так как это в субботу, а фондовый рынок закрыт. Мы будем использовать эту функцию, чтобы получить np.dateTime64 объект ближе всего к нему это рабочий день.

Для простоты мы проигнорируем более сложные случаи использования. Пожалуйста, обратитесь к Документация Если вы хотите более подробные объяснения.

np.dateTime64 с np.arange.

Последнее, что мы посмотрим на создание даты, даже проще сочетают его с функцией NP.Arge.

Помните, что аргументы для NP.Arge почти идентичны встроенному Диапазон () функция. Но есть добавленная ‘dtype’ Аргумент ключевых слов, чья по умолчанию нет. Как ассортимент, остановка в NP.Arange является эксклюзивным и поэтому не включена в расчет.

Хотите понять функцию Numpy Arange () один раз и для всех? Читайте моего руководства в блоге: Окончательное руководство по NP.Arge () с видео.

При работе с DateTimes вы должны включить дату начала и остановки и установить DTYPE.

И это все, что вам нужно знать о DateTimes в Numpy! Феве, это было много.

Чтобы проложить его, давайте визуализируем фондовый рынок США за последнее десятилетие, используя разные временные интервалы.

Как визуализировать фондовый рынок с DateTime Numpy?

Для следующего примера я скачал последние 10 лет данных фондового рынка для S & P 500 Отказ Вы можете свободно загружать его здесь Отказ

Я проделал предварительную обработку от этой статьи и завершился двумя списками. Первый, Значения, Содержит значение индекса S & P 500 в закрытии каждый день с 2009-10-23 до 2019-10-22. Второй, datetimes содержит np.dateTime64 объекты на каждый день.

Я зацикливаю эти списки вместе, чтобы создать словарь, где каждый ключ является датой и каждым значением значение S & P 500. Мы будем использовать это для создания подмножеств наших данных позже, только выбрав ключи, которые мы хотим.

Участок 1 – все данные

Во всем наборе данных наблюдается огромная тенденция. Но график довольно шумный. Можно увидеть другие тенденции, но потому что есть так много очков, это не особенно приятно смотреть. Что делать, если мы повторно выбирали, чтобы увидеть, как рынок исполнился год на год? Для этого мы посмотрим на 1 января каждый год.

Участок 2 – 1 янв

Примечание: 1 ян Ян – это праздник каждый год, и поэтому фондовый рынок не открыт. Итак, мы будем использовать np.busday_offset () Чтобы выбрать ближайшую действительную дату для нас.

Во-первых, создайте список каждый год, используя NP.Arge ().

Так как значения datetimes У единицы времени «D» мы должны преобразовать даты в All_years к этому тоже. По умолчанию по умолчанию каждый элемент к yyyy-01-01.

Теперь мы замышляем.

Это гораздо более гладкий сюжет, и очень легко понять, что годы имели положительный и отрицательный рост. Такова сила ретора!

Но этот граф слишком общий? Чтобы получить хорошую среднюю позицию, давайте посмотрим на стоимость S & P 500 в начале каждые квартал за последние 10 лет. Процесс практически идентичен тому, которое мы использовали выше.

Участок 3 – Каждый квартал

Во-первых, создайте список каждого квартала в виде YYYY-MM. Помните четверти 3 месяца!

Переосмысление наших объектов DateTime для «D» с использованием понимания списка.

Теперь мы замышляем

Это дает нам прекрасный обзор тенденций фондового рынка. Это не слишком шумно (как сюжет 1) или чрезмерно упрощенный (например, сюжет 2). Внутрилетние провалы ясны, пока график все еще легко понятен.

И именно это! Все, что вам нужно знать, чтобы использовать NP.DATETETIME64 и связанные с ними функции, а также некоторые реальные примеры мира.

Если у вас есть какие-либо вопросы или предложения, пожалуйста, используйте окно комментариев ниже. Мы любим услышать отзывы и предложения!

Атрибуция

Эта статья способна предоставлена пользователем Finxter Адам Мерфи (данные ученый):

Я являюсь самоучками программистом с первой степенью класса в математике из Университета Дарема и кодировал с июня 2019 года.

Я хорошо разбираюсь в основах SUB STRACKING и DATA SCAIL и может получить широкий спектр информации из Web очень быстро.

Недавно я счел информацию обо всех часах, которые Breitling и Rolex продают всего за 48 часов и уверены в себе, я могу доставить наборы данных подобного качества для вас, независимо от ваших потребностей.

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

Куда пойти отсюда?

Тщательное понимание Numpy Basics является важной частью образования каких-либо данных ученых. Numpy находится в основе многих передовых машин обучения и научных библиотек данных, таких как Pandas, Tensorflow и Scikit-Suart.

Если вы боретесь с Numpy Library – не бойся нет! Станьте Numpy Professional в кратчайшие сроки с нашим новым учебником кодирования «Coffe Break Numpy». Это не только тщательное введение в Numpy Library, которая повысит вашу ценность на рынке. Также весело пройти большую коллекцию кода головоломки в книге.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *