将 Year 和 DayOfYear,H:M:S 列合并到日期时间对象中

Combining Year and DayOfYear, H:M:S columns into date time object

我有一个格式为 XXXHHMMSS 的时间列,其中 XXX 是一年中的第几天。我也有一个年份专栏。我想将这两列合并到一个日期时间对象中。

之前我将 XXX 分离到一个新列中,但这使它变得更加复杂。

我已将两列转换为字符串

points['UTC_TIME'] = points['UTC_TIME'].astype(str)

分['YEAR_'] = 分['YEAR_'].astype(str)

然后我有下面一行:

points['Time'] = pd.to_datetime(points['YEAR_'] * 1000 + points['UTC_TIME'], format='%Y%j%H%M%S')

我收到值错误,ValueError:时间数据“137084552”与格式“%Y%j%H%M%S”不匹配(匹配)

这是我专栏的照片和 link data

如果您将两列组合为字符串,对我来说效果很好,例如:

import pandas as pd

df = pd.DataFrame({'YEAR_': [2002, 2002, 2002],
                   'UTC_TIME': [99082552, 135082552, 146221012]})

pd.to_datetime(df['YEAR_'].astype(str) + df['UTC_TIME'].astype(str).str.zfill(9),
               format="%Y%j%H%M%S")
# 0   2002-04-09 08:25:52
# 1   2002-05-15 08:25:52
# 2   2002-05-26 22:10:12
# dtype: datetime64[ns]

请注意,由于 %j 预计一年中的第 zero-padded 天,您可能需要 zero-fill,请参阅上例中的第一行。