Class DatetimeMethods (2.14.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

day_of_week

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.day_of_week
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.

day_of_year

The ordinal day of the year.

Examples:

>>> import pandas as pd
>>> import bigframes.pandas as bpd
>>> bpd.options.display.progress_bar = None
>>> s = bpd.Series(
... pd.date_range('2016年12月28日', '2017年01月03日', freq='D').to_series()
... )
>>> s.dt.day_of_year
2016年12月28日 00:00:00 363
2016年12月29日 00:00:00 364
2016年12月30日 00:00:00 365
2016年12月31日 00:00:00 366
2017年01月01日 00:00:00 1
2017年01月02日 00:00:00 2
2017年01月03日 00:00:00 3
dtype: Int64
Returns
Type Description
Series Containing integers indicating the day number.

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.

dayofyear

The ordinal day of the year.

Examples:

>>> import pandas as pd
>>> import bigframes.pandas as bpd
>>> bpd.options.display.progress_bar = None
>>> s = bpd.Series(
... pd.date_range('2016年12月28日', '2017年01月03日', freq='D').to_series()
... )
>>> s.dt.dayofyear
2016年12月28日 00:00:00 363
2016年12月29日 00:00:00 364
2016年12月30日 00:00:00 365
2016年12月31日 00:00:00 366
2017年01月01日 00:00:00 1
2017年01月02日 00:00:00 2
2017年01月03日 00:00:00 3
dtype: Int64
Returns
Type Description
Series Containing integers indicating the day number.

days

The numebr of days for each element

Examples:

>>> import pandas as pd
>>> import bigframes.pandas as bpd
>>> bpd.options.display.progress_bar = None
>>> s = bpd.Series([pd.Timedelta("4d3m2s1us")])
>>> s
0 4 days 00:03:02.000001
dtype: duration`us][pyarrow]`
>>> s.dt.days
0 4
dtype: Int64

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

microseconds

Number of microseconds (>= 0 and less than 1 second) for each element.

Examples:

>>> import pandas as pd
>>> import bigframes.pandas as bpd
>>> bpd.options.display.progress_bar = None
>>> s = bpd.Series([pd.Timedelta("4d3m2s1us")])
>>> s
0 4 days 00:03:02.000001
dtype: duration`us][pyarrow]`
>>> s.dt.microseconds
0 1
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

seconds

Number of seconds (>= 0 and less than 1 day) for each element.

Examples:

>>> import pandas as pd
>>> import bigframes.pandas as bpd
>>> bpd.options.display.progress_bar = None
>>> s = bpd.Series([pd.Timedelta("4d3m2s1us")])
>>> s
0 4 days 00:03:02.000001
dtype: duration`us][pyarrow]`
>>> s.dt.seconds
0 182
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").

Returns
Type Description
bigframes.pandas.Series Series of the same dtype as the data.

isocalendar

isocalendar() -> bigframes.dataframe.DataFrame

Calculate year, week, and day according to the ISO 8601 standard.

Examples:

>>> import pandas as pd
>>> import bigframes.pandas as bpd
>>> bpd.options.display.progress_bar = None
>>> s = bpd.Series(
... pd.date_range('2009年12月27日', '2010年01月04日', freq='d').to_series()
... )
>>> s.dt.isocalendar()
 year week day
2009年12月27日 00:00:00 2009 52 7
2009年12月28日 00:00:00 2009 53 1
2009年12月29日 00:00:00 2009 53 2
2009年12月30日 00:00:00 2009 53 3
2009年12月31日 00:00:00 2009 53 4
2010年01月01日 00:00:00 2009 53 5
2010年01月02日 00:00:00 2009 53 6
2010年01月03日 00:00:00 2009 53 7
2010年01月04日 00:00:00 2010 1 1
<BLANKLINE>
[9 rows x 3 columns]

Returns: DataFrame With columns year, week and day.

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]
Returns
Type Description
bigframes.pandas.Series Series of the same dtype as the data.

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.pandas.Series Series of formatted strings.

total_seconds

total_seconds() -> bigframes.series.Series

Return total duration of each element expressed in seconds.

Examples:

>>> import pandas as pd
>>> import bigframes.pandas as bpd
>>> bpd.options.display.progress_bar = None
>>> s = bpd.Series([pd.Timedelta("1d1m1s1us")])
>>> s
0 1 days 00:01:01.000001
dtype: duration`us][pyarrow]`
>>> s.dt.total_seconds()
0 86461.000001
dtype: Float64

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025年10月27日 UTC.