首页 > 解决方案 > df to datetime 对象中的 YYMM 整数

问题描述

我得到了一个带有“DOB”列的数据框,即出生日期。它被格式化为 YYMM 格式的 int。我需要它的日期时间对象。

df['DOB'] = pd.to_datetime(df['DOB'], format='%y%y%m%m') 
df['DOB'] = pd.to_datetime(df['DOB'], format='%y%m')

那没有用。

我想将列中的所有值调整为正确的日期时间对象,最后是否有一天都没关系

标签: pythonpandasdatetime

解决方案


假设您有一个 4 位整数作为数据框的一列。您可以按如下方式转换为日期时间:

dob = ['2007','1605','1709','1809','0605','0812']

df = pd.DataFrame(dob,columns=['DOB'])

for i in range(len(df['DOB'])):
    split_list = [df.DOB.loc[i][:2],df.DOB.loc[i][2:]]
    df['DOB'].loc[i] = '-'.join(split_list)

df['DOB'] = pd.to_datetime(df['DOB'], format='%y-%m')

新数据框有一列类型为 datetime64[ns]。您还可以分别提取年份和月份,如下所示:

df['year'] = pd.DatetimeIndex(df['DOB']).year
df['month'] = pd.DatetimeIndex(df['DOB']).month

现在最终的数据框有 3 列。一个是日期,另一个是年和月。


推荐阅读