🔍 Как фильтровать по дате в Pandas: простой способ для начинающих
Для фильтрации данных по дате в Pandas используйте метод query() или условный оператор с помощью [].
import pandas as pd
# Пример данных
data = {'Дата': ['2022-01-01', '2022-01-02', '2022-01-03'],
'Значение': [10, 20, 30]}
df = pd.DataFrame(data)
# Фильтрация с помощью query()
df_filtered_1 = df.query('Дата == "2022-01-02"')
# Фильтрация с помощью условного оператора []
df_filtered_2 = df[df['Дата'] == '2022-01-02']
Оба примера вернут только строки, в которых значение столбца "Дата" равно "2022-01-02".
Детальный ответ
Как фильтровать по дате pandas
В библиотеке pandas, очень удобно фильтровать данные по дате с помощью функциональности, которую она предоставляет. В этой статье мы рассмотрим различные способы фильтрации данных по дате с использованием pandas.
1. Фильтрация по определенному диапазону дат
Чтобы отфильтровать данные по определенному диапазону дат, мы можем использовать операторы сравнения (>
, <
, =
, >=
, <=
) с объектами даты и времени в pandas.
import pandas as pd
# Создаем DataFrame с данными и датами
data = {'Дата': ['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04'],
'Значение': [10, 20, 30, 40]}
df = pd.DataFrame(data)
# Преобразуем столбец "Дата" в тип данных datetime
df['Дата'] = pd.to_datetime(df['Дата'])
# Фильтруем данные по диапазону дат
filtered_df = df[(df['Дата'] >= '2022-01-02') & (df['Дата'] <= '2022-01-03')]
print(filtered_df)
В приведенном выше примере мы создаем DataFrame с данными и датами. Затем мы преобразуем столбец "Дата" в тип данных datetime с помощью функции pd.to_datetime()
. Далее мы используем операторы сравнения, чтобы отфильтровать данные, оставив только те строки, где значение в столбце "Дата" находится в заданном диапазоне.
2. Фильтрация по условию
Мы также можем фильтровать данные по определенному условию, связанному с датой, используя функциональность pandas.
# Фильтруем данные, оставляя только строки, где дата больше определенного значения
filtered_df = df[df['Дата'] > '2022-01-02']
# Фильтруем данные, оставляя только строки, где дата меньше определенного значения
filtered_df = df[df['Дата'] < '2022-01-04']
# Фильтруем данные, оставляя только строки, где дата равна определенному значению
filtered_df = df[df['Дата'] == pd.to_datetime('2022-01-03')]
В приведенных выше примерах мы используем операторы сравнения (>
, <
, =
) для фильтрации данных по заданному условию, связанному с датой. Здесь мы также преобразуем строку с датой в тип данных datetime с помощью функции pd.to_datetime()
.
3. Фильтрация по году, месяцу или дню
Если нам нужно отфильтровать данные по определенному году, месяцу или дню, мы можем использовать специальные методы, предоставляемые библиотекой pandas.
# Фильтруем данные, оставляя только строки, где год равен 2022
filtered_df = df[df['Дата'].dt.year == 2022]
# Фильтруем данные, оставляя только строки, где месяц равен январю (1)
filtered_df = df[df['Дата'].dt.month == 1]
# Фильтруем данные, оставляя только строки, где день равен 2
filtered_df = df[df['Дата'].dt.day == 2]
В приведенных выше примерах мы используем методы dt.year
, dt.month
и dt.day
для выделения года, месяца и дня из столбца с датами. Затем мы сравниваем полученные значения с нужными нам.
Таким образом, мы рассмотрели различные способы фильтрации данных по дате с помощью библиотеки pandas. Вы можете выбрать подходящий метод в зависимости от ваших конкретных потребностей и требований.