Pandas to_datetime
pandas
是Python的一个强大的数据处理库,它提供了大量的数据处理和分析功能。其中,to_datetime
函数是pandas
中一个非常重要的函数,它可以将字符串、整数、浮点数等格式的日期和时间转换为pandas
的datetime
格式,方便进行日期和时间的计算和比较。
1. 基本用法
to_datetime
函数的基本语法如下:
pandas.to_datetime(arg, errors='raise', dayfirst=False, yearfirst=False, utc=None, format=None, exact=True, unit=None, infer_datetime_format=False, origin='unix', cache=True)
其中,arg
是要转换的日期和时间,可以是字符串、整数、浮点数等格式。其它参数都是可选的,用于控制日期和时间的转换方式。
下面是一些基本的示例:
import pandas as pd
# 将字符串转换为datetime
dt = pd.to_datetime('2020-01-01')
print(dt)
# 将整数转换为datetime
dt = pd.to_datetime(1577836800, unit='s')
print(dt)
# 專換浮點數轉換為datetime
dt = pd.to_datetime(1577836800.0, unit='s')
print(dt)
Output:
2. 错误处理
to_datetime
函数的errors
参数用于控制当转换出错时的行为。它有三个可选的值:’raise’、’coerce’和’ignore’。
- ‘raise’:默认值,当转换出错时抛出异常。
- ‘coerce’:当转换出错时返回NaT(Not a Time)。
- ‘ignore’:当转换出错时返回原始的输入。
下面是一些示例:
import pandas as pd
# 当转换出错时抛出异常
try:
dt = pd.to_datetime('pandasdataframe.com', errors='raise')
except Exception as e:
print(e)
# 当转换出错时返回NaT
dt = pd.to_datetime('pandasdataframe.com', errors='coerce')
print(dt)
# 当转换出错时返回原始的输入
dt = pd.to_datetime('pandasdataframe.com', errors='ignore')
print(dt)
3. 日期和时间的格式
to_datetime
函数的format
参数用于指定日期和时间的格式。它是一个字符串,其中的特殊字符表示日期和时间的各个部分,如年、月、日、时、分、秒等。
下面是一些示例:
import pandas as pd
# 指定日期的格式
dt = pd.to_datetime('01-01-2020', format='%d-%m-%Y')
print(dt)
# 指定时间的格式
dt = pd.to_datetime('01:02:03', format='%H:%M:%S')
print(dt)
# 指定日期和时间的格式
dt = pd.to_datetime('01-01-2020 01:02:03', format='%d-%m-%Y %H:%M:%S')
print(dt)
Output:
4. 日期和时间的单位
to_datetime
函数的unit
参数用于指定日期和时间的单位。它有多个可选的值,包括’ns’、’us’、’ms’、’s’、’m’、’h’、’D’等。
下面是一些示例:
import pandas as pd
# 指定单位为纳秒
dt = pd.to_datetime(1577836800000000000, unit='ns')
print(dt)
# 指定单位为微秒
dt = pd.to_datetime(1577836800000000, unit='us')
print(dt)
# 指定单位为毫秒
dt = pd.to_datetime(1577836800000, unit='ms')
print(dt)
# 指定单位为秒
dt = pd.to_datetime(1577836800, unit='s')
print(dt)
# 指定单位为分钟
dt = pd.to_datetime(26297280, unit='m')
print(dt)
# 指定单位为小时
dt = pd.to_datetime(438288, unit='h')
print(dt)
# 指定单位为天
dt = pd.to_datetime(18262, unit='D')
print(dt)
Output:
5. 日期和时间的起源
to_datetime
函数的origin
参数用于指定日期和时间的起源。它有两个可选的值:’unix’和’julian’。
- ‘unix’:默认值,表示从1970年1月1日开始计算日期和时间。
- ‘julian’:表示从公元前4713年11月24日开始计算日期和时间。
下面是一些示例:
import pandas as pd
# 指定起源为unix
dt = pd.to_datetime(1577836800, unit='s', origin='unix')
print(dt)
# 指定起源为julian
dt = pd.to_datetime(2458849, unit='D', origin='julian')
print(dt)
Output:
6. 日期和时间的缓存
to_datetime
函数的cache
参数用于控制是否缓存已经转换的日期和时间。它是一个布尔值,如果为True,则缓存已经转换的日期和时间,如果为False,则不缓存。
下面是一些示例:
import pandas as pd
# 开启缓存
dt = pd.to_datetime('2020-01-01', cache=True)
print(dt)
# 关闭缓存
dt = pd.to_datetime('2020-01-01', cache=False)
print(dt)
Output:
7. 日期和时间的推断
to_datetime
函数的infer_datetime_format
参数用于控制是否推断日期和时间的格式。它是一个布尔值,如果为True,则推断日期和时间的格式,如果为False,则不推断。
下面是一些示例:
import pandas as pd
# 开启推断
dt = pd.to_datetime('01-01-2020', infer_datetime_format=True)
print(dt)
# 关闭推断
dt = pd.to_datetime('01-01-2020', infer_datetime_format=False)
print(dt)
8. 日期和时间的精确性
to_datetime
函数的exact
参数用于控制日期和时间的精确性。它是一个布尔值,如果为True,则精确转换日期和时间,如果为False,则不精确。
下面是一些示例:
import pandas as pd
# 开启精确性
dt = pd.to_datetime('2020-01-01 01:02:03.456789', exact=True)
print(dt)
# 关闭精确性
dt = pd.to_datetime('2020-01-01 01:02:03.456789', exact=False)
print(dt)
Output:
总结起来,pandas
的to_datetime
函数是一个非常强大的工具,它可以处理各种格式的日期和时间,提供了丰富的参数来控制日期和时间的转换方式,是数据处理和分析中不可或缺的工具。