Pandas: 将对象转换为日期时间格式

Pandas: 将对象转换为日期时间格式

在本文中,我们将介绍如何使用Pandas将对象(例如字符串)转换为日期时间(datetime)格式。如果我们的数据集中包含了日期或时间相关的数据,我们就需要将数据转换为datetime格式,以便于处理和分析。

阅读更多:Pandas 教程

什么是datetime格式?

datetime格式是一种表示日期和时间的数据类型。它在许多数据分析和处理任务中经常使用,例如统计某个时间段内的销售量或者分析某个时间点的用户行为。datetime格式在Python中由datetime模块提供。

Pandas是一个基于Numpy的开源数据分析库,它包含了许多方便的函数和方法,可以让我们快速地处理和分析数据。Pandas支持将字符串等数据类型转换为datetime格式,并提供了一些非常有用的解析和转换函数。

如何将对象转换为datetime格式

在Pandas中,使用to_datetime函数可以将字符串或者其他对象转换为datetime格式。to_datetime函数的基本用法如下:

import pandas as pd
pd.to_datetime(arg, format=None, errors='raise', utc=None, box=True, unit=None, infer_datetime_format=False, origin='unix', cache=True)
Python

其中:

  • arg:需要转换为datetime格式的参数,可以是字符串、列表、元组、Series、DataFrame等Pandas对象。
  • format:字符串格式,用于解析arg的日期和时间格式。如果不指定,则根据arg的类型和内容自动判断。
  • errors:指定遇到错误时的处理方式,可选值为’raise’、’coerce’和’ignore’。’raise’表示遇到错误时抛出异常(默认值),’coerce’表示将错误的值设置为NaT(Not a Time),’ignore’表示忽略错误的值。
  • utc:指定时区。如果不指定,则默认为None,表示本地时区。
  • unit:指定时间单位。如果不指定,则默认为纳秒(’ns’)。
  • infer_datetime_format:是否启用自动推断日期时间格式。如果指定为True,Pandas会尝试自动推断arg的日期时间格式,从而加快转换速度。
  • origin:时间的初始原点。如果unit参数指定为’s’或’ms’,则origin默认为’Unix Epoch’(即1970年1月1日),否则为’0001-01-01’。
  • cache:是否启用缓存。

下面我们分别介绍一些常用的用法及其示例。

1. 将单个字符串转换为datetime格式

我们可以使用to_datetime函数将一个单独的字符串转换为datetime格式,如下所示:

import pandas as pd
dt_str = '2020-04-06 08:05:12'
dt = pd.to_datetime(dt_str)
print(dt)
Python

输出结果为:

2020-04-06 08:05:12
Python

to_datetime函数会根据字符串的格式自动推断日期时间的格式。如果我们知道字符串的格式,也可以通过format参数指定,例如:

import pandas as pd
dt_str = '2020*4*6#8|5|12'
dt_format = '%Y*%m*%d#%H|%M|%S'
dt = pd.to_datetime(dt_str, format=dt_format)
print(dt)
Python

输出结果为:

2020-04-06 08:05:12
Python

2. 将列表或数组转换为datetime格式

我们也可以使用to_datetime函数将由字符串组成的列表或数组转换为datetime格式,例如:

import pandas as pd
dt_list = ['2020-04-06 08:05:12', '2020-04-07 09:10:15', '2020-04-08 10:12:05']
dt = pd.to_datetime(dt_list)
print(dt)
Python

输出结果为:

DatetimeIndex(['2020-04-06 08:05:12', '2020-04-07 09::10:15', '2020-04-08 10:12:05'], dtype='datetime64[ns]', freq=None)
Python

3. 将Pandas Series转换为datetime格式

假设我们的数据集中包含了一个日期字符串的列,我们可以使用to_datetime函数将其转换为datetime格式,并将其作为新的列加入数据集中。例如:

import pandas as pd
data = {'日期': ['2020-04-06', '2020-04-07', '2020-04-08'], '销售量': [100, 200, 150]}
df = pd.DataFrame(data)
df['日期'] = pd.to_datetime(df['日期'])
print(df)
Python

输出结果为:

          日期  销售量
0 2020-04-06  100
1 2020-04-07  200
2 2020-04-08  150
Python

4. 日期时间的运算

将日期时间转换为datetime格式后,我们可以方便地进行日期时间的运算。例如,我们可以计算两个日期之间的天数(或秒数、分钟数等),如下所示:

import pandas as pd
dt1 = pd.to_datetime('2020-04-06 08:05:12')
dt2 = pd.to_datetime('2020-04-08 10:12:05')
diff = dt2 - dt1
print(diff.days)
Python

输出结果为:

2
Python

5. 使用strftime函数格式化输出

我们可以使用strftime函数将datetime格式的日期时间对象格式化为指定的字符串格式。strftime函数的用法和C语言中的同名函数类似。例如:

import pandas as pd
dt = pd.to_datetime('2020-04-06 08:05:12')
str = dt.strftime('%Y-%m-%d %H:%M:%S')
print(str)
Python

输出结果为:

2020-04-06 08:05:12
Python

总结

Pandas提供了to_datetime函数,可以将字符串、列表、数组等对象转换为datetime格式,方便日期时间的处理和运算。我们可以通过format参数指定日期时间的字符串格式,也可以使用strftime函数将datetime对象格式化为指定的字符串格式。日期时间的处理和运算在数据分析和处理任务中非常常见,熟悉Pandas中的日期时间函数和方法可以大大提高我们的工作效率和数据分析能力。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册