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

       处理数据集时,它们不一定是我们需要的格式。有时,甚至数字数据也可以以文本格式存储,而类似的实例可能会影响我们前进的速度,特别是当涉及大量数据时。有没有解决的办法?

本文试图通过演示特定案例的解决方案来回答这些问题,其中我们将数字转换为日期和时间格式。


我们将研究以下每个类别的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函数打印以下数据集时会出现什么情况。

df1 = pd.DataFrame({'When?':[20200316, 20230517, 20210525, 20221219, 20191130],
                  'What?': ['Convocation', 'Exams End', 'Vacation starts', 'Tour', 'Party']})
print(df1)
print(df1.dtypes)

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

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

转换短日期 (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 的情况并非如此。让我们通过下面的例子来看看如何解决这个问题。

df2 = pd.DataFrame({'When?':[2003161915, 2305171300, 2105250700, 2212191030,
                  1911302130], 'What?': ['Convocation', 'Exams End',
                                         'Vacation starts','Tour', 'Party']})
print(df2)
print(df2.dtypes)

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

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

以上为转载如何在 Pandas 中将 int64 转换为日期时间? – 码微

以上出于学习转载,如有侵权可及时沟通

  • 20
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值