处理数据集时,它们不一定是我们需要的格式。有时,甚至数字数据也可以以文本格式存储,而类似的实例可能会影响我们前进的速度,特别是当涉及大量数据时。有没有解决的办法?
本文试图通过演示特定案例的解决方案来回答这些问题,其中我们将数字转换为日期和时间格式。
我们将研究以下每个类别的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 转换为日期时间? – 码微
以上出于学习转载,如有侵权可及时沟通