Pandas 如何将多个列的数据转换为日期时间类型

您所在的位置:网站首页 excel合并两列日期时间 Pandas 如何将多个列的数据转换为日期时间类型

Pandas 如何将多个列的数据转换为日期时间类型

2024-05-08 06:05| 来源: 网络整理| 查看: 265

Pandas 如何将多个列的数据转换为日期时间类型

在本文中,我们将介绍在Pandas中如何将多个列的数据转换为一个日期时间类型的列。

首先,我们需要了解Pandas中日期时间类型的表示。在Pandas中,日期时间类型被表示为DatetimeIndex对象,它可以作为DataFrame的一列。

阅读更多:Pandas 教程

pandas.to_datetime方法

要将多个列的数据转换为日期时间类型,我们可以使用pandas.to_datetime方法。该方法可以将一系列的字符串(如时间戳)转换为DatetimeIndex对象。

下面是一个示例,我们将创建一个DataFrame,包含年份、月份和日期列:

import pandas as pd df = pd.DataFrame({'year':[2018, 2019], 'month':[1, 2], 'day':[1, 15]}) print(df)

输出:

year month day 0 2018 1 1 1 2019 2 15

现在,我们将使用pandas.to_datetime方法将这三列转换为一个日期时间类型的列:

df['date'] = pd.to_datetime(df[['year', 'month', 'day']]) print(df)

输出:

year month day date 0 2018 1 1 2018-01-01 1 2019 2 15 2019-02-15

如上所示,我们可以将多个列的数据转换为一个日期时间类型的列。我们可以使用to_datetime方法并将要转换的列作为一个列表传递给它。

如果我们只有一个列需要转换为日期时间类型,那么我们可以省略列表。下面是一个示例,我们将创建一个包含时间戳的DataFrame:

df = pd.DataFrame({'timestamp':['2018-01-01 01:01:01', '2019-02-15 20:20:20']}) print(df)

输出:

timestamp 0 2018-01-01 01:01:01 1 2019-02-15 20:20:20

现在,我们将使用pandas.to_datetime方法将这个字符串列转换为一个日期时间类型的列:

df['date'] = pd.to_datetime(df['timestamp']) print(df)

输出:

timestamp date 0 2018-01-01 01:01:01 2018-01-01 01:01:01 1 2019-02-15 20:20:20 2019-02-15 20:20:20

如上所示,我们可以使用to_datetime方法将包含时间戳的列转换为日期时间类型的列。

指定日期时间格式

在某些情况下,我们需要指定时间戳的格式。例如,如果我们的时间戳包含毫秒,我们需要指定格式为’%Y-%m-%d %H:%M:%S.%f’。

下面是一个示例,我们将创建一个包含带有毫秒的时间戳的DataFrame:

df = pd.DataFrame({'timestamp':['2018-01-01 01:01:01.123', '2019-02-15 20:20:20.456']}) print(df)

输出:

timestamp 0 2018-01-01 01:01:01.123 1 2019-02-15 20:20:20.456

现在,我们将使用pandas.to_datetime方法将这个字符串列转换为一个日期时间类型的列,并指定格式为’%Y-%m-%d %H:%M:%S.%f’:

df['date'] = pd.to_datetime(df['timestamp'], format='%Y-%m-%d %H:%M:%S.%f') print(df)

输出:

timestamp date 0 2018-01-01 01:01:01.123 2018-01-01 01:01:01.123 1 2019-02-15 20:20:20.456 2019-02-15 20:20:20.456000

如上所示,我们可以使用format参数来指定时间戳的格式。

处理缺失值

在实际的数据分析中,我们经常会遇到缺失值。当存在缺失值时,pandas.to_datetime方法将返回NaT(Not a Time)。

下面是一个示例,我们将创建一个DataFrame,其中包含一个缺失值:

df = pd.DataFrame({'timestamp':['2018-01-01 01:01:01', '2019-02-15 20:20:20', None]}) print(df)

输出:

timestamp 0 2018-01-01 01:01:01 1 2019-02-15 20:20:20 2 None

现在,我们将使用pandas.to_datetime方法将这个字符串列转换为一个日期时间类型的列:

df['date'] = pd.to_datetime(df['timestamp']) print(df)

输出:

timestamp date 0 2018-01-01 01:01:01 2018-01-01 01:01:01 1 2019-02-15 20:20:20 2019-02-15 20:20:20 2 None NaT

如上所示,我们可以看到第三行的值为NaT,表示缺失值。

总结

在Pandas中,我们可以使用pandas.to_datetime方法将多个列的数据转换为一个日期时间类型的列,也可以将包含时间戳的列转换为日期时间类型的列。我们还可以使用format参数指定时间戳的格式,处理缺失值时会返回NaT。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3