pandas.to_datetime(arg, errors='raise', dayfirst=False, yearfirst=False, utc=None, box=True, format=None, exact=True, unit=None, infer_datetime_format=False, origin='unix', cache=True) [source]
将参数转换为datetime
。
参数: | arg :
0.18.1版中的新功能:或类似 errors : 默认为 如果为 如果为 如果为 dayfirst : 如果 则指定日期解析顺序。 如果为 例如12/10/11解析为2012-11-10。 警告: 但更喜欢使用day first进行解析( 这是一个已知的错误,基于dateutil的行为)。 yearfirst : 如果 如果True解析日期以年份为第一, 则将10/11/12解析为2010-11-12。 如果 则在 警告: 但更喜欢使用 (这是一个已知的错误,基于 版本0.16.1中的新功能。 utc : 如果为 (也转换任何支持tz的datetime.datetime对象)。 box: boolean,默认为True 如果True返回DatetimeIndex或类似Index的对象 如果为False,则返回值的ndarray。 从0.25.0版开始不推荐使用: Series.to_numpy()或Timestamp.to_datetime64() 分别使用或分别获取值或 format :
请注意, 有关选择的更多信息, 请参见 strftime-and-strptime-behavior exact : 如果为 如果为 unit :
它是整数或浮点数。这将基于原点。 例如,对于 这将计算到 infer_datetime_format : 如果为 请尝试推断日期时间字符串的格式, 如果可以推断出日期格式, 请切换到解析它们的更快方法。 在某些情况下,这可以使解析速度提高约5-10倍。 origin : 定义参考日期。自该参考日期以来, 数值将被解析为单位数(由unit定义)。 如果是 原点设置为1970-01-01。 如果为 并且原点设置为Julian Calendar的开头。 Julian天数0被指定为 从公元前4713年1月1日正午开始的那一天。 如果时间戳可转换, 则将原点设置为由原点标识的时间戳。 0.20.0版中的新功能。 cache : 如果为 则使用唯一的转换日期缓存来应用datetime转换。 解析重复的日期字符串时, 尤其是带有时区偏移的日期字符串时, 可能会大大提高速度。 0.23.0版中的新功能。 在0.25.0版中进行了更改: -将默认值从 |
返回值: | ret : 日期时间(如果解析成功)。 返回类型取决于输入: list-like:DatetimeIndex Series:datetime64 dtype Series scalar:时间戳(Timestamp) 如果无法返回指定的类型 (例如,当输入的任何元素 在 ,则返回将具有 (或对应的 |
例子
1)将字符串转换为 datetime
类型
import pandas as pd # 单个日期字符串 date_str = '2024-12-20' date = pd.to_datetime(date_str) print(date) # 输出:2024-12-20 00:00:00 # 多个日期字符串 date_strs = ['2024-12-20', '2024-12-21'] dates = pd.to_datetime(date_strs) print(dates) # 输出: # DatetimeIndex(['2024-12-20', #'2024-12-21'], dtype='datetime64[ns]', #freq=None)
2)处理不同的日期格式
使用 format
参数来指定日期格式,避免 pandas
自动推断导致的错误。
import pandas as pd date_str = '20-12-2024' date = pd.to_datetime(date_str, format='%d-%m-%Y') print(date) # 输出:2024-12-20 00:00:00
3)将 Unix 时间戳转换为 datetime
类型
import pandas as pd timestamp = 1700000000 # Unix 时间戳 date = pd.to_datetime(timestamp, unit='s') print(date) # 输出:2023-11-27 08:40:00
4)自动推断日期格式
如果没有指定日期格式,pandas
会尝试自动推断。
import pandas as pd date_strs = ['2024-12-20', '20/12/2024', '2024.12.20'] dates = pd.to_datetime(date_strs) print(dates) # 输出: # DatetimeIndex(['2024-12-20', #'2024-12-20', '2024-12-20'], #dtype='datetime64[ns]', freq=None)
5)处理不规则的日期格式
对于格式不统一的日期时间数据,pandas.to_datetime() 会自动解析,但有时可能需要手动清理数据。
import pandas as pd date_strs = ['2024-12-20', 'December 21, 2024', '21/12/2024'] # 错误的数据会被转为 NaT dates = pd.to_datetime(date_strs, errors='coerce') print(dates) # 输出: # DatetimeIndex(['2024-12-20', #'2024-12-21', '2024-12-21'], #dtype='datetime64[ns]', freq=None)
6)指定时区
可以使用 tz
参数来指定时区。
import pandas as pd date_str = '2024-12-20 12:30:00' date = pd.to_datetime(date_str).tz_localize('UTC') print(date) # 输出:2024-12-20 12:30:00+00:00
7)处理缺失值
对于 NaT
或 None
等缺失值,pandas.to_datetime()
会自动处理。
import pandas as pd date_strs = ['2024-12-20', None, '2024-12-22'] dates = pd.to_datetime(date_strs) print(dates) # 输出: # DatetimeIndex(['2024-12-20', 'NaT', # '2024-12-22'], dtype='datetime64[ns]', freq=None)