如何在 Pandas 中将 int64 转换为日期时间?

处理数据集时,它们不一定是我们需要的格式。有时,甚至数字数据也可以以文本格式存储,而类似的实例可能会影响我们前进的速度,特别是当涉及大量数据时。有没有解决的办法?Python 中的任何东西可以帮助我们摆脱这种痛苦吗?本文试图通过演示特定案例的解决方案来回答这些问题,其中我们将数字转换为日期和时间格式。

我们将研究以下每个类别的int64数据到日期时间格式的转换。

  • 转换长日期
  • 转换短日期
  • 将日期与时间转换

要将 Pandas 中的 int64 转换为 Datetime,请使用 pd.to_datetime() 函数。对于长日期 (YYYYMMDD),请使用格式“%Y%m%d”。对于短日期 (YYMMDDD),请使用“%y%m%d”。对于带有时间的日期 (YYMMDDHHMM),请使用“%y%m%d%H%M”。调整格式参数以适合您的特定日期表示形式。

pandas库中的to_datetime ()函数将用于将int64数据转换为datetime因此,让我们开始使用以下代码导入pandas库。

import pandas as pd

转换长日期 (YYYYMMDD)

该类别处理以int64格式的连续数字形式存储的日期让我们仔细看看使用print函数打印以下数据集时会出现什么情况。

df = pd.DataFrame({'When?':[20200316, 20230517, 20210525, 20221219, 20191130],
                  'What?': ['Convocation', 'Exams End', 'Vacation starts', 'Tour', 'Party']})
print(df)
print(df.dtype)
具有长日期的数据框

从上图可以明显看出,数据类型是int64,并且很明显,该数据不是任何可以表示日期的常规方式。因此,是时候采取行动并使用to_datetime( )函数做一些事情了。

df['When?'] = pd.to_datetime(df['When?'],format = '%Y%m%d')

运行上面的代码并尝试使用print函数再次打印数据帧。另外,看看结果数据框中的数据类型,您可能会感到惊讶。

长日期转换为日期时间格式

看到日期按照应有的格式真是让人松了一口气,不是吗?


转换短日期 (YYMMDD)

有时,数字格式的日期也可以采用缩写形式,仅采用年份的两位数字而不是四位数字。当部署上一节中详细介绍的技术将这些值转换为日期时间格式时,这可能会带来问题。所以,这就是需要做的事情,对代码进行一些小的调整,我们就准备好了。

最好是亲眼目睹演示,而不是谈论它,所以请查看下面的数据集。

df = pd.DataFrame({'When?':[200316, 230517, 210525, 221219, 191130],
                  'What?': ['Convocation', 'Exams End', 'Vacation starts', ‘Tour’, ‘Party’]})
print(df)
print(df.dtypes)
具有短日期的数据框

这里的小调整是在to_datetime函数中用“%y”替换“%Y”,如下所示。

df['When?'] = pd.to_datetime(df['When?'],format = '%y%m%d')

现在运行代码并打印结果以见证“何时?”下所有值的日期格式的变化 柱子。

短日期转换为日期时间格式

将日期与时间转换 (YYMMDDHHMM)

也可能存在日期与时间组合并一起列出的情况。从时间中筛选日期可能听起来像是一项艰巨的任务,但 Python 的情况并非如此。让我们通过下面的例子来看看如何解决这个问题。

df = pd.DataFrame({'When?':[2003161915, 2305171300, 2105250700, 2212191030,
                  1911302130], 'What?': ['Convocation', 'Exams End',
                                         'Vacation starts','Tour', 'Party']})
print(df)
print(df.dtypes)
带有日期和时间的数据框

“何时?”下每个值的最后四位数字 列对应 24 小时格式的时间。现在让我们将其与日期分开,同时使用to_datetime( )函数将数值转换为日期包括“%H%M”以将时间与日期分开。

df['When?'] = pd.to_datetime(df['When?'],format = '%y%m%d%H%M')

运行上面的代码,当使用打印函数返回修改后的数据帧时,结果就会出现。

转换日期与时间

概括

现在我们已经到了本文的结尾,希望它已经详细说明了可用于在 Pandas 中将 int64 数据转换为 Datetime 的不同变体。这是另一篇文章,详细介绍了如何 在 Python 中显示带有前导零的数字。AskPython中还有许多其他有趣且内容丰富的文章,可能对那些希望提高 Python 水平的人有很大帮助。Audere est Facere!


参考: