Class DatetimeMethods (1.5.0)

DatetimeMethods(
    data=None,
    index: vendored_pandas_typing.Axes | None = None,
    dtype: typing.Optional[
        bigframes.dtypes.DtypeString | bigframes.dtypes.Dtype
    ] = None,
    name: str | None = None,
    copy: typing.Optional[bool] = None,
    *,
    session: typing.Optional[bigframes.session.Session] = None
)

Accessor object for datetime-like properties of the Series values.

Properties

date

Returns a Series with the date part of Timestamps without time and timezone information.

Examples:

>>> import bigframes.pandas as bpd
>>> bpd.options.display.progress_bar = None
>>> s = bpd.Series(["1/1/2020 10:00:00+00:00", "2/1/2020 11:00:00+00:00"])
>>> s = bpd.to_datetime(s, utc=True, format="%d/%m/%Y %H:%M:%S%Ez")
>>> s
0    2020-01-01 10:00:00+00:00
1    2020-01-02 11:00:00+00:00
dtype: timestamp[us, tz=UTC][pyarrow]
>>> s.dt.date
0   2020-01-01
1   2020-01-02
dtype: date32`day][pyarrow]`

day

The day of the datetime.

Examples:

>>> import pandas as pd
>>> import bigframes.pandas as bpd
>>> bpd.options.display.progress_bar = None
>>> s = bpd.Series(
...     pd.date_range("2000-01-01", periods=3, freq="D")
... )
>>> s
0    2000-01-01 00:00:00
1    2000-01-02 00:00:00
2    2000-01-03 00:00:00
dtype: timestamp`us][pyarrow]`
>>> s.dt.day
0    1
1    2
2    3
dtype: Int64

dayofweek

The day of the week with Monday=0, Sunday=6.

Return the day of the week. It is assumed the week starts on Monday, which is denoted by 0 and ends on Sunday, which is denoted by 6.

Examples:

>>> import pandas as pd
>>> import bigframes.pandas as bpd
>>> bpd.options.display.progress_bar = None
>>> s = bpd.Series(
...     pd.date_range('2016-12-31', '2017-01-08', freq='D').to_series()
... )
>>> s.dt.dayofweek
2016-12-31 00:00:00    5
2017-01-01 00:00:00    6
2017-01-02 00:00:00    0
2017-01-03 00:00:00    1
2017-01-04 00:00:00    2
2017-01-05 00:00:00    3
2017-01-06 00:00:00    4
2017-01-07 00:00:00    5
2017-01-08 00:00:00    6
dtype: Int64
Returns
Type Description
Series Containing integers indicating the day number.

hour

The hours of the datetime.

Examples:

>>> import pandas as pd
>>> import bigframes.pandas as bpd
>>> bpd.options.display.progress_bar = None
>>> s = bpd.Series(
...     pd.date_range("2000-01-01", periods=3, freq="h")
... )
>>> s
0    2000-01-01 00:00:00
1    2000-01-01 01:00:00
2    2000-01-01 02:00:00
dtype: timestamp`us][pyarrow]`
>>> s.dt.hour
0    0
1    1
2    2
dtype: Int64

minute

The minutes of the datetime.

Examples:

>>> import pandas as pd
>>> import bigframes.pandas as bpd
>>> bpd.options.display.progress_bar = None
>>> s = bpd.Series(
...     pd.date_range("2000-01-01", periods=3, freq="min")
... )
>>> s
0    2000-01-01 00:00:00
1    2000-01-01 00:01:00
2    2000-01-01 00:02:00
dtype: timestamp`us][pyarrow]`
>>> s.dt.minute
0    0
1    1
2    2
dtype: Int64

month

The month as January=1, December=12.

Examples:

>>> import pandas as pd
>>> import bigframes.pandas as bpd
>>> bpd.options.display.progress_bar = None
>>> s = bpd.Series(
...     pd.date_range("2000-01-01", periods=3, freq="M")
... )
>>> s
0    2000-01-31 00:00:00
1    2000-02-29 00:00:00
2    2000-03-31 00:00:00
dtype: timestamp`us][pyarrow]`
>>> s.dt.month
0    1
1    2
2    3
dtype: Int64

quarter

The quarter of the date.

Examples:

>>> import bigframes.pandas as bpd
>>> bpd.options.display.progress_bar = None
>>> s = bpd.Series(["1/1/2020 10:00:00+00:00", "4/1/2020 11:00:00+00:00"])
>>> s = bpd.to_datetime(s, utc=True, format="%m/%d/%Y %H:%M:%S%Ez")
>>> s
0    2020-01-01 10:00:00+00:00
1    2020-04-01 11:00:00+00:00
dtype: timestamp[us, tz=UTC][pyarrow]
>>> s.dt.quarter
0    1
1    2
dtype: Int64

second

The seconds of the datetime.

Examples:

>>> import pandas as pd
>>> import bigframes.pandas as bpd
>>> bpd.options.display.progress_bar = None
>>> s = bpd.Series(
...     pd.date_range("2000-01-01", periods=3, freq="s")
... )
>>> s
0    2000-01-01 00:00:00
1    2000-01-01 00:00:01
2    2000-01-01 00:00:02
dtype: timestamp`us][pyarrow]`
>>> s.dt.second
0    0
1    1
2    2
dtype: Int64

time

Returns a Series with the time part of the Timestamps.

Examples:

>>> import bigframes.pandas as bpd
>>> bpd.options.display.progress_bar = None
>>> s = bpd.Series(["1/1/2020 10:00:00+00:00", "2/1/2020 11:00:00+00:00"])
>>> s = bpd.to_datetime(s, utc=True, format="%m/%d/%Y %H:%M:%S%Ez")
>>> s
0    2020-01-01 10:00:00+00:00
1    2020-02-01 11:00:00+00:00
dtype: timestamp[us, tz=UTC][pyarrow]
>>> s.dt.time
0    10:00:00
1    11:00:00
dtype: time64`us][pyarrow]`

tz

Return the timezone.

Examples:

>>> import bigframes.pandas as bpd
>>> bpd.options.display.progress_bar = None
>>> s = bpd.Series(["1/1/2020 10:00:00+00:00", "2/1/2020 11:00:00+00:00"])
>>> s = bpd.to_datetime(s, utc=True, format="%m/%d/%Y %H:%M:%S%Ez")
>>> s
0    2020-01-01 10:00:00+00:00
1    2020-02-01 11:00:00+00:00
dtype: timestamp[us, tz=UTC][pyarrow]
>>> s.dt.tz
datetime.timezone.utc

unit

Returns the unit of time precision.

Examples:

>>> import bigframes.pandas as bpd
>>> bpd.options.display.progress_bar = None
>>> s = bpd.Series(["1/1/2020 10:00:00+00:00", "2/1/2020 11:00:00+00:00"])
>>> s = bpd.to_datetime(s, utc=True, format="%m/%d/%Y %H:%M:%S%Ez")
>>> s
0    2020-01-01 10:00:00+00:00
1    2020-02-01 11:00:00+00:00
dtype: timestamp[us, tz=UTC][pyarrow]
>>> s.dt.unit
'us'

year

The year of the datetime.

Examples:

>>> import pandas as pd
>>> import bigframes.pandas as bpd
>>> bpd.options.display.progress_bar = None
>>> s = bpd.Series(
...     pd.date_range("2000-01-01", periods=3, freq="Y")
... )
>>> s
0    2000-12-31 00:00:00
1    2001-12-31 00:00:00
2    2002-12-31 00:00:00
dtype: timestamp`us][pyarrow]`
>>> s.dt.year
0    2000
1    2001
2    2002
dtype: Int64

Methods

floor

floor(freq: str) -> bigframes.series.Series

Perform floor operation on the data to the specified freq.

Supported freq arguments are: 'Y' (year), 'Q' (quarter), 'M' (month), 'W' (week), 'D' (day), 'h' (hour), 'min' (minute), 's' (second), 'ms' (microsecond), 'us' (nanosecond), 'ns' (nanosecond)

Behavior around clock changes (i.e. daylight savings) is determined by the SQL engine, so "ambiguous" and "nonexistent" parameters are not supported. Y, Q, M, and W freqs are not supported by pandas as of version 2.2, but have been added here due to backend support.

Examples:

>>> import pandas as pd
>>> import bigframes.pandas as bpd
>>> rng = pd.date_range('1/1/2018 11:59:00', periods=3, freq='min')
>>> bpd.Series(rng).dt.floor("h")
0    2018-01-01 11:00:00
1    2018-01-01 12:00:00
2    2018-01-01 12:00:00
dtype: timestamp`us][pyarrow]`
Parameter
Name Description
freq str

Frequency string (e.g. "D", "min", "s").

normalize

normalize() -> bigframes.series.Series

Convert times to midnight.

The time component of the date-time is converted to midnight i.e. 00:00:00. This is useful in cases when the time does not matter. The return dtype will match the source series.

This method is available on Series with datetime values under the .dt accessor.

Examples:

>>> import pandas as pd
>>> import bigframes.pandas as bpd
>>> s = bpd.Series(pd.date_range(
...     start='2014-08-01 10:00',
...     freq='h',
...     periods=3,
...     tz='Asia/Calcutta')) # note timezones will be converted to UTC here
>>> s.dt.normalize()
0    2014-08-01 00:00:00+00:00
1    2014-08-01 00:00:00+00:00
2    2014-08-01 00:00:00+00:00
dtype: timestamp[us, tz=UTC][pyarrow]

strftime

strftime(date_format: str) -> bigframes.series.Series

Convert to string Series using specified date_format.

Return a Series of formatted strings specified by date_format. Details of the string format can be found in BigQuery format elements doc: https://cloud.google.com/bigquery/docs/reference/standard-sql/format-elements#format_elements_date_time.

Examples:

>>> import bigframes.pandas as bpd
>>> bpd.options.display.progress_bar = None

>>> s = bpd.to_datetime(
...     ['2014-08-15 08:15:12', '2012-02-29 08:15:12+06:00', '2015-08-15 08:15:12+05:00'],
...     utc=True
... ).astype("timestamp[us, tz=UTC][pyarrow]")

>>> s.dt.strftime("%B %d, %Y, %r")
0      August 15, 2014, 08:15:12 AM
1    February 29, 2012, 02:15:12 AM
2      August 15, 2015, 03:15:12 AM
dtype: string
Parameter
Name Description
date_format str

Date format string (e.g. "%Y-%m-%d").

Returns
Type Description
bigframes.series.Series Series of formatted strings.