Нарезка фреймов данных Pandas на основе диапазонов дат: удобное руководство с примерами кода

Работа с данными временных рядов часто предполагает разделение данных на основе определенных диапазонов дат. В этом сообщении блога мы рассмотрим различные методы разделения фреймов данных Pandas на основе диапазонов дат, используя разговорный язык, и предоставим примеры кода для каждого метода. Независимо от того, являетесь ли вы новичком или опытным программистом Python, это руководство поможет вам эффективно извлекать данные из DataFrames на основе определенных критериев даты.

Метод 1: использование логического индексирования

Один из самых простых способов разбить DataFrame на основе диапазона дат — использовать логическое индексирование. Вот как это можно сделать:

import pandas as pd
# Assuming your DataFrame has a 'date' column
df = pd.read_csv('your_data.csv')
df['date'] = pd.to_datetime(df['date'])
start_date = pd.to_datetime('2022-01-01')
end_date = pd.to_datetime('2022-12-31')
# Boolean indexing to slice the DataFrame
filtered_df = df[(df['date'] >= start_date) & (df['date'] <= end_date)]

Метод 2: использование метода доступа loc

Аксессор locв Pandas обеспечивает индексирование на основе меток, которое можно использовать для разделения DataFrames на основе диапазонов дат. Вот пример:

# Assuming your DataFrame has a DateTimeIndex
df = pd.read_csv('your_data.csv', index_col='date', parse_dates=True)
start_date = '2022-01-01'
end_date = '2022-12-31'
# Slicing the DataFrame using loc
filtered_df = df.loc[start_date:end_date]

Метод 3. Использование метода query

Метод queryв Pandas позволяет фильтровать DataFrames с помощью строкового выражения. Вот пример разрезания DataFrame на основе диапазона дат с использованием метода query:

# Assuming your DataFrame has a 'date' column
df = pd.read_csv('your_data.csv')
df['date'] = pd.to_datetime(df['date'])
start_date = pd.to_datetime('2022-01-01')
end_date = pd.to_datetime('2022-12-31')
# Slicing the DataFrame using the query method
filtered_df = df.query('@start_date <= date <= @end_date')

Метод 4. Использование метода between

Метод betweenв Pandas можно использовать для проверки того, попадают ли значения в указанный диапазон. Вот пример использования метода betweenдля разделения DataFrame на основе диапазона дат:

# Assuming your DataFrame has a 'date' column
df = pd.read_csv('your_data.csv')
df['date'] = pd.to_datetime(df['date'])
start_date = pd.to_datetime('2022-01-01')
end_date = pd.to_datetime('2022-12-31')
# Slicing the DataFrame using the between method
filtered_df = df[df['date'].between(start_date, end_date)]

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

Не забудьте адаптировать примеры кода к вашей конкретной структуре DataFrame и формату даты. Приятной нарезки!