5 способов удалить даты выходных из DataFrame в Python

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

Метод 1: использование Pandas и datetime.weekday()
Первый метод включает использование библиотеки pandas и функции datetime.weekday(). Эта функция возвращает целое число, обозначающее день недели, где понедельник — 0, а воскресенье — 6. Мы можем отфильтровать строки, соответствующие выходным дням, выбрав строки со значениями дней недели меньше 5 (с понедельника по пятницу).

import pandas as pd
df = pd.DataFrame({'date': ['2024-01-27', '2024-01-28', '2024-01-29', '2024-01-30', '2024-01-31']})
df['date'] = pd.to_datetime(df['date'])
df = df[df['date'].dt.weekday < 5]
print(df)

Метод 2: использование Pandas и метода day_name()
В этом методе мы можем использовать метод day_name() для преобразования столбца даты в соответствующий день недели. Затем мы можем отфильтровать строки, в которых день недели — «суббота» или «воскресенье».

import pandas as pd
df = pd.DataFrame({'date': ['2024-01-27', '2024-01-28', '2024-01-29', '2024-01-30', '2024-01-31']})
df['date'] = pd.to_datetime(df['date'])
df = df[(df['date'].dt.day_name() != 'Saturday') & (df['date'].dt.day_name() != 'Sunday')]
print(df)

Метод 3: использование NumPy и np.isin()
Этот метод предполагает использование функции np.isin() NumPy для создания логической маски, которая проверяет, попадает ли каждая дата в список выходных дней. Затем мы можем использовать эту маску для фильтрации строк, соответствующих выходным дням.

import pandas as pd
import numpy as np
df = pd.DataFrame({'date': ['2024-01-27', '2024-01-28', '2024-01-29', '2024-01-30', '2024-01-31']})
df['date'] = pd.to_datetime(df['date'])
weekend_days = ['Saturday', 'Sunday']
df = df[~np.isin(df['date'].dt.day_name(), weekend_days)]
print(df)

Метод 4: использование Pandas и функции bdate_range()
Функция bdate_range() из pandas обеспечивает удобный способ создания рабочих дней (будних дней). С помощью этой функции мы можем создать диапазон дат, а затем отфильтровать строки, соответствующие сгенерированным рабочим дням.

import pandas as pd
df = pd.DataFrame({'date': ['2024-01-27', '2024-01-28', '2024-01-29', '2024-01-30', '2024-01-31']})
df['date'] = pd.to_datetime(df['date'])
business_days = pd.bdate_range(start=df['date'].min(), end=df['date'].max())
df = df[df['date'].isin(business_days)]
print(df)

Метод 5: использование Pandas и атрибута dt.weekday_name
Этот метод предполагает использование атрибута dt.weekday_name, который возвращает название дня недели. Мы можем отфильтровать строки, в которых днем ​​недели является «Суббота» или «Воскресенье».

import pandas as pd
df = pd.DataFrame({'date': ['2024-01-27', '2024-01-28', '2024-01-29', '2024-01-30', '2024-01-31']})
df['date'] = pd.to_datetime(df['date'])
df = df[(df['date'].dt.weekday_name != 'Saturday') & (df['date'].dt.weekday_name != 'Sunday')]
print(df)

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

Не забудьте выбрать метод, который соответствует вашим конкретным требованиям и стилю кодирования. Приятного кодирования!

Теги: PythonDataFrame: как удалить даты выходных в Python

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

Метод 1: использование Pandas и datetime.weekday()
Первый метод предполагает использование библиотеки Pandas и функции datetime.weekday(). Эта функция возвращает целое число, обозначающее день недели, где понедельник — 0, а воскресенье — 6. Мы можем отфильтровать строки, соответствующие выходным дням, выбрав строки со значениями дней недели меньше 5 (с понедельника по пятницу).

Метод 2: использование Pandas и метода day_name()
В этом методе мы можем использовать метод day_name() для преобразования столбца даты в соответствующий день недели. Затем мы можем отфильтровать строки, в которых днем ​​недели является «суббота» или «воскресенье».

Метод 3: использование NumPy и np.isin()
Этот метод предполагает использование функции np.isin() NumPy для создания логической маски, которая проверяет, попадает ли каждая дата в список выходных дней. Затем мы можем использовать эту маску, чтобы отфильтровать строки, соответствующие выходным дням.

Метод 4: использование Pandas и функции bdate_range()
Функция bdate_range() из Pandas обеспечивает удобный способ создания рабочих дней (будних дней). С помощью этой функции мы можем создать диапазон дат, а затем отфильтровать строки, соответствующие сгенерированным рабочим дням.

Метод 5: использование Pandas и атрибута dt.weekday_name
Этот метод предполагает использование атрибута dt.weekday_name, который возвращает название дня недели. Мы можем отфильтровать строки, в которых названием дня недели является «Суббота» или «Воскресенье».

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