Атрибут days_in_month
Атрибут days_in_month применяется к Series
с типом данных datetime64 через аксессор dt
и возвращает количество дней в месяце для каждой даты.
Атрибут не принимает параметров и возвращает Series
с целочисленными значениями от 28 до 31.
Синтаксис
ser.dt.days_in_month
Пример
Давайте получим количество дней в месяце для каждой даты из серии:
import pandas as pd
ser = pd.Series(pd.date_range('2024-01-15', periods=5, freq='ME'))
res = ser.dt.days_in_month
print(res)
Результат выполнения кода:
0 31
1 29
2 31
3 30
4 31
dtype: int64
В примере мы создали серию из пяти дат с шагом в один месяц и получили количество дней в каждом месяце. Для февраля 2024 года (високосный год) возвращается 29 дней.
Пример
Давайте применим атрибут к серии с произвольными датами:
import pandas as pd
ser = pd.Series(pd.to_datetime(['2023-01-01', '2023-02-01', '2023-03-01']))
res = ser.dt.days_in_month
print(res)
Результат выполнения кода:
0 31
1 28
2 31
dtype: int64
Для февраля 2023 года (невисокосный год) атрибут вернул 28 дней.
Пример
Давайте используем атрибут для фильтрации дат, которые приходятся на месяцы с 31 днём:
import pandas as pd
ser = pd.Series(pd.to_datetime(['2024-01-15', '2024-02-15', '2024-03-15']))
filtered = ser[ser.dt.days_in_month == 31]
print(filtered)
Результат выполнения кода:
0 2024-01-15
2 2024-03-15
dtype: datetime64[ns]
В результате мы отфильтровали только те даты, которые приходятся на январь и март (месяцы с 31 днём).
Смотрите также
-
атрибут
year,
который возвращает год из даты -
атрибут
month,
который возвращает номер месяца из даты -
атрибут
day,
который возвращает день месяца из даты -
атрибут
is_leap_year,
который проверяет, является ли год високосным