Pandas to_datetime
pandas库是Python中用于数据处理和分析的强大工具。其中,to_datetime
函数是一个非常有用的函数,它可以将字符串、整数或浮点数等不同类型的数据转换为日期时间格式。
1. pandas to_datetime基本用法
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
是要转换的对象,可以是字符串、整数或浮点数等。其他参数主要包括:
errors
:指定在解析日期时如何处理错误。默认为’raise’,表示如果出现错误就抛出异常。如果设置为’ignore’,则忽略错误;如果设置为’coerce’,则将无法解析的数据转换为NaT(Not a Time)。dayfirst
:布尔值,指定输入的日期字符串中是否先出现日。默认为False。yearfirst
:布尔值,指定输入的日期字符串中是否先出现年。默认为False。utc
:布尔值,指定是否将日期时间转换为UTC格式。默认为None。format
:指定日期时间的格式。例如,’%Y-%m-%d’表示年-月-日的格式。exact
:布尔值,指定是否精确匹配格式。默认为True。unit
:指定时间戳的单位。例如,’D’表示天,’s’表示秒。infer_datetime_format
:布尔值,指定是否推断输入的日期时间格式。默认为False。origin
:指定时间戳的起始点。默认为’unix’,表示1970年1月1日。cache
:布尔值,指定是否缓存唯一的日期字符串。默认为True。
下面是一些基本的示例:
import pandas as pd
# 将字符串转换为日期时间
pd.to_datetime('2020-01-01')
print(pd)
# 将整数转换为日期时间
pd.to_datetime(1577836800000000000, unit='ns')
print(pd)
# 将浮点数转换为日期时间
pd.to_datetime(1577836800.0, unit='s')
print(pd)
# 将日期字符串列表转换为日期时间
pd.to_datetime(['2020-01-01', '2020-02-01', '2020-03-01'])
print(pd)
# 将日期字符串Series转换为日期时间
s = pd.Series(['2020-01-01', '2020-02-01', '2020-03-01'])
pd.to_datetime(s)
print(pd)
# 将DataFrame的某一列转换为日期时间
df = pd.DataFrame({'date': ['2020-01-01', '2020-02-01', '2020-03-01']})
df['date'] = pd.to_datetime(df['date'])
print(df)
Output:
2. pandas to_datetime处理错误
to_datetime
函数的errors
参数可以用来处理在解析日期时出现的错误。下面是一些示例:
import pandas as pd
# 如果出现错误,抛出异常
try:
pd.to_datetime('not a date', errors='raise')
except Exception as e:
print(e)
# 如果出现错误,忽略错误
pd.to_datetime('not a date', errors='ignore')
# 如果出现错误,将无法解析的数据转换为NaT
pd.to_datetime('not a date', errors='coerce')
print(pd)
3. pandas to_datetime指定日期格式
to_datetime
函数的format
参数可以用来指定日期的格式。下面是一些示例:
import pandas as pd
# 指定日期的格式为年-月-日
pd.to_datetime('2020-01-01', format='%Y-%m-%d')
print(pd)
# 指定日期的格式为月/日/年
pd.to_datetime('01/01/2020', format='%m/%d/%Y')
print(pd)
# 指定日期的格式为日.月.年
pd.to_datetime('01.01.2020', format='%d.%m.%Y')
print(pd)
Output:
4. pandas to_datetime处理时间戳
to_datetime
函数可以将时间戳转换为日期时间。下面是一些示例:
import pandas as pd
# 将纳秒级的时间戳转换为日期时间
pd.to_datetime(1577836800000000000, unit='ns')
print(pd)
# 将秒级的时间戳转换为日期时间
pd.to_datetime(1577836800, unit='s')
print(pd)
# 将毫秒级的时间戳转换为日期时间
pd.to_datetime(1577836800000, unit='ms')
print(pd)
# 将微秒级的时间戳转换为日期时间
pd.to_datetime(1577836800000000, unit='us')
print(pd)
# 将天级的时间戳转换为日期时间
pd.to_datetime(18262, unit='D')
print(pd)
Output:
5. pandas to_datetime处理UTC日期时间
to_datetime
函数的utc
参数可以用来处理UTC日期时间。下面是一些示例:
import pandas as pd
# 将字符串转换为UTC日期时间
pd.to_datetime('2020-01-01T00:00:00Z', utc=True)
print(pd)
# 将整数转换为UTC日期时间
pd.to_datetime(1577836800000000000, unit='ns', utc=True)
print(pd)
# 将浮点数转换为UTC日期时间
pd.to_datetime(1577836800.0, unit='s', utc=True)
print(pd)
Output:
6. pandas to_datetime推断日期格式
to_datetime
函数的infer_datetime_format
参数可以用来推断日期的格式。下面是一些示例:
import pandas as pd
# 推断日期的格式
pd.to_datetime('01-01-2020', infer_datetime_format=True)
print(pd)
# 推断日期字符串列表的格式
pd.to_datetime(['01-01-2020', '02-01-2020', '03-01-2020'], infer_datetime_format=True)
print(pd)
# 推断日期字符串Series的格式
s = pd.Series(['01-01-2020', '02-01-2020', '03-01-2020'])
pd.to_datetime(s, infer_datetime_format=True)
print(pd)
7. pandas to_datetime缓存日期字符串
to_datetime
函数的cache
参数可以用来缓存唯一的日期字符串。下面是一些示例:
import pandas as pd
# 缓存日期字符串
pd.to_datetime(['01-01-2020', '02-01-2020', '03-01-2020'], cache=True)
print(pd)
# 缓存日期字符串Series
s = pd.Series(['01-01-2020', '02-01-2020', '03-01-2020'])
pd.to_datetime(s, cache=True)
print(pd)
Output:
总结,pandas的to_datetime
函数是一个非常强大的工具,可以处理各种类型的数据,并将它们转换为日期时间格式。无论你是在处理字符串、整数、浮点数,还是在处理时间戳,都可以使用to_datetime
函数来完成任务。同时,to_datetime
函数还提供了许多参数,可以用来处理错误、指定日期格式、处理UTC日期时间、推断日期格式和缓存日期字符串等。