Pandas 将DataFrame列从字符串转换为日期时间类型
在现实世界中,数据很少是直接可用的。通常你需要对数据进行处理和转换,还要将数据类型转换为正确的格式。其中一种常见的转换是将一个字符串列转换为日期时间类型,以便分析和可视化数据。
在本文中,我们将介绍如何使用Pandas将DataFrame列从字符串转换为日期时间类型。
阅读更多:Pandas 教程
准备工作
在开始之前,你需要安装Python和Pandas库。如果没有安装,可以参考以下步骤进行安装。
示例数据
假设我们有一个包含日期时间的DataFrame,但是该列的数据类型是字符串。我们需要将该列转换为日期时间类型以便进一步处理和分析数据。
输出结果如下:
在这个DataFrame中,date列是一个字符串类型,我们需要将其转换为日期时间类型。
使用Pandas将字符串列转换为日期时间类型
使用Pandas将字符串列转换为日期时间类型非常简单。只需要使用 pandas.to_datetime()
函数,并指定列名即可。
输出结果如下:
现在我们已经成功地将date列转换为日期时间类型了!
将多个字符串列转换为日期时间类型
有时候,我们可能需要将一个DataFrame中的多个列转换为日期时间类型。还是使用上面的示例数据,假设现在我们有一个新增的时间列,也需要将其转换为日期时间类型。
输出结果如下:
现在需要将date和time列都转换为日期时间类型。这次我们需要使用Pandas的 pd.to_datetime()
函数,并将date列和time列组合起来。可以使用 +
运算符将两列组合在一起。
输出结果如下:
现在,我们已成功将date和time列转换为datetime类型,并用新的datetime列代替了原有的date和time列。
处理日期时间格式
一旦我们将一个字符串列转换为日期时间类型,我们就可以使用所有日期时间类型的函数和方法进行操作,例如获取日期、时间或日期时间的差异,提取出年、月、日、时间等,甚至是将日期时间转换为其他格式。下面是一些示例。
获取日期时间的差异
我们可以使用Pandas的 datetime
模块来获取两个日期时间之间的时间差异。
输出结果如下:
这里我们使用了 datetime.datetime()
函数来创建两个日期时间对象,并将它们相减得到时间差异。使用 total_seconds()
方法可以将时间差转换为秒,然后除以3600可以得到小时差异。
提取出年、月、日、时间等
可以使用 pandas.Series.dt
属性来提取日期时间中的各个部分。例如:
输出结果如下:
将日期时间转换为其他格式
有时候我们需要将日期时间转换为其他格式,例如将日期时间转换为字符串。
输出结果如下:
这里我们使用 strftime()
将datetime列转换为字符串格式,并指定了日期时间的格式。
总结
在本文中,我们介绍了如何使用Pandas将DataFrame列从字符串转换为日期时间类型。我们还介绍了如何处理日期时间格式,包括获取日期、时间或日期时间的差异,提取出年、月、日、时间等,以及将日期时间转换为其他格式。这些方法对于分析和可视化时间序列数据非常有用。