Тестирование программного обеспечения | Учебное пособие по обработке данных Artifact Pandas (8)
Тестирование программного обеспечения | Учебное пособие по обработке данных Artifact Pandas (8)
Предисловие

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

временной ряд

Как следует из названия, временной ряд(time ряд) представляет собой последовательность, состоящую из времени. Он относится к последовательности значений переменной, измеренной в хронологическом порядке в течение определенного периода времени. Например, температура в течение дня будет меняться со временем или цена. запас будет меняться со временем. Учитывая постоянные колебания времени, используемый здесь временной ряд можно рассматривать как временной. ряд。временной ряд включает в себя три сценария применения, а именно:

  • Конкретный момент (метка времени), то есть метка времени;
  • Фиксированная дата (период), например определенный день определенного месяца определенного года;
  • Временной интервал (интервал), регулярные промежутки времени;

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

В Python есть встроенный модуль datetime для получения текущего времени, и вы можете получить локальное текущее время с помощью datetime.now(). Код выглядит следующим образом:

Язык кода:python
кодКоличество запусков:0
копировать
from datetime import datetime
#Тип данных — datetime
print(datetime.now())

Pandas также предоставляет ряд методов обработки времени. Ниже мы представляем обработку времени pandas.

Создать временную метку

TimeStamp (метка времени) давременной Самый простой тип данных в ряду, он прекрасно сочетает в себе числовые значения и моменты времени. Панды использовать Следующие методы Создать временную метку:

Язык кода:python
кодКоличество запусков:0
копировать
import pandas as pd
print (pd.Timestamp('2023-03-26'))

-----------------------------
Вывод следующий:
2023-03-26 00:00:00

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

Язык кода:python
кодКоличество запусков:0
копировать
import pandas as pd
print(pd.Timestamp(1679818304,unit='s'))

---------------------
Вывод следующий:
2023-03-26 08:11:44

Диапазон времени создания

Метод date_range() можно использовать для создания непрерывного периода времени или фиксированного интервала времени. Эта функция предоставляет три параметра, а именно:

  • начало: время начала
  • конец: время окончания
  • частота: частота времени, по умолчанию «D» (день).

Примеры следующие:

Язык кода:python
кодКоличество запусков:0
копировать
import pandas as pd
#freq представляет временную частоту, меняющуюся каждые 30 минут.
print(pd.date_range("9:00", "15:15", freq="30min").time)

-----------------
Вывод следующий:
[datetime.time(9, 0) datetime.time(9, 30) datetime.time(10, 0)
 datetime.time(10, 30) datetime.time(11, 0) datetime.time(11, 30)
 datetime.time(12, 0) datetime.time(12, 30) datetime.time(13, 0)
 datetime.time(13, 30) datetime.time(14, 0) datetime.time(14, 30)
 datetime.time(15, 0)]

Измените временную частоту. Указанная выше временная частота основана на 30-минутных интервалах. Мы также можем изменить временной интервал на один час. Код следующий:

Язык кода:python
кодКоличество запусков:0
копировать
import pandas as pd
# Перейти на почасовую оплату
print(pd.date_range("7:10", "11:45", freq="H").time)

----------------------
Вывод следующий:
[datetime.time(7, 10) datetime.time(8, 10) datetime.time(9, 10)
 datetime.time(10, 10) datetime.time(11, 10)]

Преобразовать в временную метку

Можно использовать to_datetime() Функция будет series или list Преобразовать в объект даты, где list Будет преобразовано в DatetimeIndex. Примеры следующие:

Язык кода:python
кодКоличество запусков:0
копировать
import pandas as pd

print(pd.to_datetime(pd.Series(['Mar 23, 2023','2023-03-26', None])))
-----------------------------
Вывод следующий:
0   2023-03-23
1   2023-03-26
2          NaT
dtype: datetime64[ns]

Примечание. NaT не представляет время, он эквивалентен NaN.

Еще один пример

Язык кода:python
кодКоличество запусков:0
копировать
import pandas as pd
#Передаем список и генерируем Datetimeindex
print(pd.to_datetime(['Mar 20, 2023','2023-03-31', None]))

------------------------
Вывод следующий:
DatetimeIndex(['2023-03-20', '2023-03-31', 'NaT'], dtype='datetime64[ns]', freq=None)

Преобразование частоты и периода

Периоды времени представляют собой интервал времени, период времени, который определен в классе Pandas Periods. Метод, предоставляемый этим классом, можно использовать для преобразования частоты в период. Например, метод Periods() может преобразовать частоту «М» (месяц) в Period (период времени).

В следующем примере используется asfreq() и start параметры, распечатать "01" , если использовать end параметры, распечатать "31"。Примеры следующие:

Язык кода:python
кодКоличество запусков:0
копировать
import pandas as pd
x = pd.Period('2023', freq='M')
#startparameter
print(x.asfreq('D', 'start'))
#конечныйпараметр
print(x.asfreq('D', 'end'))

------------------------
Вывод следующий:
2023-01-01
2023-01-31

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

Псевдоним

описывать

Псевдоним

описывать

B

Частота рабочего дня

BQS

Частота начала рабочего квартала

D

частота календарных дней

A

Частота на конец года

W

еженедельная частота

BA

Периодичность окончания рабочего года

M

Частота в конце месяца

BAS

Частота начала рабочего года

SM

частота окончания полумесяца

BH

Частота рабочих часов

BM

Частота окончания рабочего месяца

H

Почасовая частота

MS

ежемесячная частота запуска

T,min

частота в минуту

SMS

Половинаежемесячная частота запуска

S

частота в секунду

BMS

Работаежемесячная частота запуска

L,ms

миллисекунда

Q

Частота конца квартала

U,us

тонкий

BQ

Частота окончания рабочего квартала

N

наносекунда

QS

частота начала четверти

расчет периода времени

Вычисления периода относятся к арифметическим операциям над периодами времени, и все операции будут выполняться на «частотной» основе.

Язык кода:python
кодКоличество запусков:0
копировать
import pandas as pd
#S означает секунды
x = pd.Period('2023', freq='S')
print(x)
----------------------------
Вывод следующий:

2023-01-01 00:00:00

Пример выполнения расчета:

Язык кода:python
кодКоличество запусков:0
копировать
import pandas as pd
x = pd.Period('2023', freq='S')
#Добавляем 2 секунды ко времени
print(x+2)
---------------
Вывод следующий:
2023-01-01 00:00:02

Полный пример:

Язык кода:python
кодКоличество запусков:0
копировать
import pandas as pd

#Define period period, по умолчанию freq="Y" год
p1=pd.Period('2023')
p2=pd.Period('2022')
#использоватьf''Форматированный вывод
print(f'p1={p1}год')
print(f'p2={p2}год')
print(f'p1иp2 интервал {p1-p2} лет')
#f'' представляет вывод в формате строки.
print(f'Пять лет назад было {p1-5} лет')

--------------------
Вывод следующий:
р1=2023
р2=2022
p1иp2интервал<YearEnd: month=12>Год
Пять лет назад это был 2018 год.

Создать период времени

использовать period_range() Способы создания период времениобъем。Примеры следующие:

Язык кода:python
кодКоличество запусков:0
копировать
import pandas as pd
#Y означает год
p = pd.period_range('2020','2023', freq='Y')
print(p)
-----------------------------
Вывод следующий:
PeriodIndex(['2020', '2021', '2022', '2023'], dtype='period[A-DEC]')

Диапазон дат создания

Pandas предоставляет функцию date_range() для создания последовательности дат. Частота этой функции по умолчанию — «D», что означает «день». Последовательность дат содержит только год, месяц и день, но не включает часы, минуты и секунды.

Примеры следующие:

Язык кода:python
кодКоличество запусков:0
копировать
import pandas as pd
print(pd.date_range('03/26/2023', periods=10))
-------------------
Вывод следующий:
DatetimeIndex(['2023-03-26', '2023-03-27', '2023-03-28', '2023-03-29',
               '2023-03-30', '2023-03-31', '2023-04-01', '2023-04-02',
               '2023-04-03', '2023-04-04'],
              dtype='datetime64[ns]', freq='D')

Примечание:использовать date_range() Приходить Диапазон дат созданиячас,Эта функция содержит дату окончания,С математической точки зрения интервал замкнут слева и закрыт справа.,т.е. содержит начальное значение,Также содержит конечное значение.

Изменить ежедневную частоту

использовать Следующие методы могут изменить частоту,Например, нажмите «день», чтобы нажать «месяц».,Примеры следующие:

Язык кода:python
кодКоличество запусков:0
копировать
import pandas as pd
print(pd.date_range('01/31/2023', periods=5,freq='M'))
-------------------------
Вывод следующий:
DatetimeIndex(['2023-01-31', '2023-02-28', '2023-03-31', '2023-04-30',
               '2023-05-31'],
              dtype='datetime64[ns]', freq='M')

рабочий день

bdate_range() представляет диапазон дат для создания рабочих дней, который отличается от date_range() тем, что не включает субботу и воскресенье.

Язык кода:python
кодКоличество запусков:0
копировать
import pandas as pd

print(pd.bdate_range('03/26/2023', periods=10))
----------------------
Вывод следующий:
DatetimeIndex(['2023-03-27', '2023-03-28', '2023-03-29', '2023-03-30',
               '2023-03-31', '2023-04-03', '2023-04-04', '2023-04-05',
               '2023-04-06', '2023-04-07'],
              dtype='datetime64[ns]', freq='B')

Частота по умолчанию для date_range() — календарные дни, а частота по умолчанию для bdate_range() — будние дни.

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

Подвести итог

В этой статье в основном представлены пандывременной ряд связанного контента,pandas очень богат на обработку времени,Функция также очень мощная,Это очень помогает в нашей работе. Обработку разницы во времени панд мы представим позже.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose