Class DatetimeMethods (2.4.0) (original) (raw)
Library reference docs
BigQuery DataFrames
- Overview
- Changelog
- bigframes.pandas
* Index
* Indexers
* AtDataFrameIndexer
* AtSeriesIndexer
* IatDataFrameIndexer
* IatSeriesIndexer
* ILocDataFrameIndexer
* IlocSeriesIndexer
* LocDataFrameIndexer
* LocSeriesIndexer
* pandas
* Series
* Series
* DatetimeMethods
* StringMethods
* StructAccessor
* ListAccessor
* PlotAccessor
* BlobAccessor
* Window - bigframes.ml
* llm
* Overview
* GeminiTextGenerator
* PaLM2TextGenerator
* PaLM2TextEmbeddingGenerator
* TextEmbeddingGenerator
* Claude3TextGenerator
Class DatetimeMethods (2.4.0)
Stay organized with collections Save and categorize content based on your preferences.
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. |
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
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-05-12 UTC.