pandas.tseries.offsets.SemiMonthEnd#

class pandas.tseries.offsets.SemiMonthEnd#

Two DateOffset’s per month repeating on the last day of the month & day_of_month.

This offset allows for flexibility in generating date ranges or adjusting dates to the end of a month or a specific day in the month, such as the 15th or the last day of the month. It is useful for financial or scheduling applications where events occur bi-monthly.

Attributes

n

(int, default 1) The number of months represented.

normalize

(bool, default False) Normalize start/end dates to midnight before generating date range.

day_of_month

(int, {1, 3,…,27}, default 15) A specific integer for the day of the month.

See also

tseries.offsets.SemiMonthBegin

Offset for semi-monthly frequencies, starting at the beginning of the month.

tseries.offsets.MonthEnd

Offset to the last calendar day of the month.

tseries.offsets.MonthBegin

Offset to the first calendar day of the month.

Examples

>>> ts = pd.Timestamp(2022, 1, 14)
>>> ts + pd.offsets.SemiMonthEnd()
Timestamp('2022-01-15 00:00:00')
>>> ts = pd.Timestamp(2022, 1, 15)
>>> ts + pd.offsets.SemiMonthEnd()
Timestamp('2022-01-31 00:00:00')
>>> ts = pd.Timestamp(2022, 1, 31)
>>> ts + pd.offsets.SemiMonthEnd()
Timestamp('2022-02-15 00:00:00')

If you want to get the result for the current month:

>>> ts = pd.Timestamp(2022, 1, 15)
>>> pd.offsets.SemiMonthEnd().rollforward(ts)
Timestamp('2022-01-15 00:00:00')

Attributes

base

Returns a copy of the calling offset object with n=1 and all other attributes equal.

day_of_month

freqstr

Return a string representing the frequency.

kwds

Return a dict of extra parameters for the offset.

n

name

Return a string representing the base frequency.

nanos

Returns a integer of the total number of nanoseconds for fixed frequencies.

normalize

rule_code

Methods

copy()

Return a copy of the frequency.

is_month_end(ts)

Return boolean whether a timestamp occurs on the month end.

is_month_start(ts)

Return boolean whether a timestamp occurs on the month start.

is_on_offset(dt)

Return boolean whether a timestamp intersects with this frequency.

is_quarter_end(ts)

Return boolean whether a timestamp occurs on the quarter end.

is_quarter_start(ts)

Return boolean whether a timestamp occurs on the quarter start.

is_year_end(ts)

Return boolean whether a timestamp occurs on the year end.

is_year_start(ts)

Return boolean whether a timestamp occurs on the year start.

rollback(dt)

Roll provided date backward to next offset only if not on offset.

rollforward(dt)

Roll provided date forward to next offset only if not on offset.