Python Pandas Timestamp 常用方法及 DatetimeArray 类详解
Pandas 库中 Timestamp 类的 utcnow、utcoffset、utctimetuple、weekday 方法以及 DatetimeArray 类的用法。涵盖了获取 UTC 时间、时区偏移量转换、时间元组生成、星期查询及日期数组操作。通过代码示例展示了具体实现与输出结果,适用于处理时间序列数据场景。

Pandas 库中 Timestamp 类的 utcnow、utcoffset、utctimetuple、weekday 方法以及 DatetimeArray 类的用法。涵盖了获取 UTC 时间、时区偏移量转换、时间元组生成、星期查询及日期数组操作。通过代码示例展示了具体实现与输出结果,适用于处理时间序列数据场景。

classmethod pandas.Timestamp.utcnow()
返回表示 UTC 日期和时间的新的 Timestamp。
无
用于获取当前的 UTC 时间戳。
返回一个 pandas.Timestamp 对象,表示当前的 UTC 时间戳。
无
无
import pandas as pd
# 获取当前的 UTC 时间戳
utc_now = pd.Timestamp.utcnow()
print(utc_now)
2024-10-16 12:08:11.818230+00:00
pandas.Timestamp.utcoffset()
返回 UTC 偏移量。
无
用于获取时间戳的 UTC 偏移量,属于 pandas 库中的 Timestamp 对象,用于处理时间序列数据。
返回一个 timedelta 对象,表示该 Timestamp 与 UTC 时间的时差。在处理具有时区信息的时间戳时尤其重要,有助于理解本地时间与 UTC 时间之间的差异。
无
无
import pandas as pd
# 创建一个带时区的 Timestamp
timestamp_with_tz = pd.Timestamp('2024-10-16 20:15:00', tz='Asia/Shanghai')
# 获取 UTC 偏移量
utc_offset_with_tz = timestamp_with_tz.utcoffset()
print(utc_offset_with_tz)
# 创建一个没有时区的 Timestamp
timestamp_without_tz = pd.Timestamp('2024-10-16 20:15:00')
# 获取 UTC 偏移量
utc_offset_without_tz = timestamp_without_tz.utcoffset()
print(utc_offset_without_tz)
8:00:00
None
pandas.Timestamp.utctimetuple()
返回 UTC 时间元组,兼容 time.localtime()。
无
将 Timestamp 对象转换为 UTC 时区下的时间元组,忽略时区信息。
返回一个 time.struct_time 对象,该对象是 Python 标准库中的一个元组类型,表示 UTC 时区下的时间。
time.struct_time 对象的格式:
time.struct_time(tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst)
其中,各个字段的含义如下:
无
无
import pandas as pd
# 创建一个 Timestamp 对象
ts = pd.Timestamp('2024-10-15 20:25:00', tz='US/Eastern')
# 使用 utctimetuple() 方法
utc_time = ts.utctimetuple()
print(utc_time)
print(f"Year: {utc_time.tm_year}")
print(f"Month: {utc_time.tm_mon}")
print(f"Day: {utc_time.tm_mday}")
print(f"Hour: {utc_time.tm_hour}")
print(f"Minute: {utc_time.tm_min}")
print(f"Second: {utc_time.tm_sec}")
time.struct_time(tm_year=2024, tm_mon=10, tm_mday=16, tm_hour=0, tm_min=25, tm_sec=0, tm_wday=2, tm_yday=290, tm_isdst=0)
Year: 2024
Month: 10
Day: 16
Hour: 0
Minute: 25
Second: 0
pandas.Timestamp.weekday()
返回日期代表的星期几。Monday == 0 … Sunday == 6。
无
用于返回一个整数字段,表示该日期是星期几,星期一对应的值为 0,星期二为 1,依此类推,星期日为 6。
返回一个整数字段,表示该日期是星期几。
无
无
import pandas as pd
date = pd.Timestamp('2024-10-16')
weekday = date.weekday()
print(weekday)
2
class pandas.arrays.DatetimeArray(values, dtype=None, freq=_NoDefault.no_default, copy=False)
Pandas ExtensionArray for tz-naive or tz-aware datetime data.
Warning DatetimeArray is currently experimental, and its API may change without warning.
In particular, DatetimeArray.dtype is expected to change to always be an instance of an ExtensionDtype subclass.
Parameters:
values: Series, Index, DatetimeArray, ndarray - The datetime data.
For DatetimeArray values (or a Series or Index boxing one), dtype and freq will be extracted from values.
dtype: numpy.dtype or DatetimeTZDtype - Note that the only NumPy dtype allowed is 'datetime64[ns]'.
freq: str or Offset, optional - The frequency.
copy: bool, default False - Whether to copy the underlying array of values.
values(必须):array-like,用于创建 DatetimeArray 的基本数据,通常是一个日期时间的数组,如字符串、整数时间戳或已转换为日期时间格式的其他数据。
dtype(可选,默认值为 None):str 或 np.dtype 或 None,指定数据的类型,可以是字符串形式的 dtype 或者是 numpy 数据类型,如果不提供,pandas 将根据 values 自动推断。
freq(可选,默认值为_NoDefault.no_default):str, DateOffset 或者 None,指定时间序列的频率,例如'D'表示日,'H'表示小时等,如果没有指定,默认值为 None,这对于时间序列的数据分析非常关键,因为频率可以影响到数据的时序操作。
copy(可选,默认值为 False):布尔值,是否创建数据的副本,如果设置为 True,尽管 values 可能是可变的,依然会强制创建一个新的数组,这在避免对原数据的意外修改时可能会有用。
用于提供高效的、矢量化的时间序列数据表示形式,它允许快速的时间戳开发、切片、时间运算等操作,是处理时间相关数据时不可或缺的组成部分。
构造完成后,DatetimeArray 将返回一个表示日期时间的对象,该对象能够支持许多 pandas 时间序列功能,包括但不限于索引操作、时间戳反向转换、缺失值处理等。
无
无
import pandas as pd
# 创建一个日期时间的数组
date_strings = ["2024-10-16", "2024-10-17", "2024-10-18"]
# 转换为 DatetimeArray
datetime_array = pd.arrays.DatetimeArray(pd.to_datetime(date_strings))
print("DatetimeArray:")
print(datetime_array)
# 访问特定的日期
print("\n访问特定日期:")
print(datetime_array[1])
# 访问第二个日期
# 进行日期运算,例如增加一天
print("\n增加一天:")
new_dates = datetime_array + pd.Timedelta(days=1)
print(new_dates)
# 检查频率(此例中没有设置频率,所以会是 None)
print("\n频率:")
print(datetime_array.freq)
DatetimeArray:
<DatetimeArray>
['2024-10-16 00:00:00', '2024-10-17 00:00:00', '2024-10-18 00:00:00']
Length: 3, dtype: datetime64[ns]
访问特定日期:
2024-10-17 00:00:00
增加一天:
<DatetimeArray>
['2024-10-17 00:00:00', '2024-10-18 00:00:00', '2024-10-19 00:00:00']
Length: 3, dtype: datetime64[ns]
频率:
None

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online