pandas 分离日期和时间

pandas 分离日期和时间

pandas 分离日期和时间

在处理时间序列数据时,经常会遇到需要将日期和时间分开处理的情况。而使用Python中的pandas库可以很方便地处理这一问题。本文将介绍如何使用pandas库分离日期和时间,并对其进行特定的操作。

创建示例数据

首先,我们创建一个示例的时间序列数据,以便后续演示。我们使用pandas的date_range函数生成一个包含日期和时间的时间序列:

import pandas as pd

# 创建一个包含日期和时间的时间序列
date_rng = pd.date_range(start='2022-01-01 00:00:00', end='2022-01-05 23:59:59', freq='H')
df = pd.DataFrame(date_rng, columns=['date'])

# 显示前5行数据
print(df.head())
Python

运行以上代码,我们可以得到如下输出:

                 date
0 2022-01-01 00:00:00
1 2022-01-01 01:00:00
2 2022-01-01 02:00:00
3 2022-01-01 03:00:00
4 2022-01-01 04:00:00
Python

可以看到,我们已经创建了一个包含日期和时间的时间序列数据。

分离日期和时间

接下来,我们将使用pandas库中的dt访问器来分离日期和时间。使用dt.date可以获取日期部分,使用dt.time可以获取时间部分。我们将把这两部分分别存储在新的列中:

# 分离日期和时间并存储到新的列中
df['date'] = pd.to_datetime(df['date'])
df['date_only'] = df['date'].dt.date
df['time_only'] = df['date'].dt.time

# 显示前5行数据
print(df.head())
Python

运行以上代码,我们可以看到如下输出:

                 date   date_only time_only
0 2022-01-01 00:00:00  2022-01-01  00:00:00
1 2022-01-01 01:00:00  2022-01-01  01:00:00
2 2022-01-01 02:00:00  2022-01-01  02:00:00
3 2022-01-01 03:00:00  2022-01-01  03:00:00
4 2022-01-01 04:00:00  2022-01-01  04:00:00
Python

我们可以看到,我们已经成功将日期和时间分离,并存储到了新的列中。

操作日期和时间

除了分离日期和时间之外,我们还可以对日期和时间进行一些操作。例如,我们可以提取年、月、日、小时、分钟、秒等信息,或者对日期进行加减操作。

提取年、月、日、时、分、秒

我们可以使用dt.yeardt.monthdt.daydt.hourdt.minutedt.second来提取相应的信息:

# 提取年、月、日、时、分、秒信息
df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month
df['day'] = df['date'].dt.day
df['hour'] = df['date'].dt.hour
df['minute'] = df['date'].dt.minute
df['second'] = df['date'].dt.second

# 显示前5行数据
print(df.head())
Python

运行以上代码,我们可以看到如下输出:

                 date   date_only time_only  year  month  day  hour  minute  second
0 2022-01-01 00:00:00  2022-01-01  00:00:00  2022      1    1     0       0       0
1 2022-01-01 01:00:00  2022-01-01  01:00:00  2022      1    1     1       0       0
2 2022-01-01 02:00:00  2022-01-01  02:00:00  2022      1    1     2       0       0
3 2022-01-01 03:00:00  2022-01-01  03:00:00  2022      1    1     3       0       0
4 2022-01-01 04:00:00  2022-01-01  04:00:00  2022      1    1     4       0       0
Python

我们可以看到,我们已经成功提取了年、月、日、时、分、秒等信息。

日期加减操作

我们也可以对日期进行加减操作,例如,我们可以将日期向前或向后移动若干天,以及计算日期之间的差值:

# 日期加减操作
df['next_day'] = df['date'] + pd.DateOffset(days=1)
df['prev_day'] = df['date'] - pd.DateOffset(days=1)
df['date_diff'] = df['next_day'] - df['date']

# 显示前5行数据
print(df.head())
Python

运行以上代码,我们可以看到如下输出:

                 date   date_only time_only  year  month  day  hour  minute  second            next_day            prev_day       date_diff
0 2022-01-01 00:00:00  2022-01-01  00:00:00  2022      1    1     0       0       0 2022-01-02 00:00:00                 NaT 1 days 00:00:00
1 2022-01-01 01:00:00  2022-01-01  01:00:00  2022      1    1     1       0       0 2022-01-02 01:00:00 2021-12-31 01:00:00 1 days 00:00:00
2 2022-01-01 02:00:00  2022-01-01  02:00:00  2022      1    1     2       0       0 2022-01-02 02:00:00 2021-12-31 02:00:00 1 days 00:00:00
3 2022-01-01 03:00:00  2022-01-01  03:00:00  2022      1    1     3       0       0 2022-01-02 03:00:00 2021-12-31 03:00:00 1 days 00:00:00
4 2022-01-01 04:00:00  2022-01-01  04:00:00  2022      1    1     4       0       0 2022-01-02 04:00:00 2021-12-31 04:00:00 1 days 00:00:00
Python

总结

本文介绍了如何使用pandas库分离日期和时间,并对其进行特定的操作。通过使用pandas中的dt访问器,我们可以很方便地提取日期和时间的不同部分,也可以对日期进行加减操作。这些操作对于处理时间序列数据非常有用,能够更加灵活地进行数据分析和处理。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册