将两个 Pandas 列转换为 yyyy-mm-dd HH:MM:SS

convert two Pandas columns into yyyy-mm-dd HH:MM:SS

我有一个 Pandas 数据框,看起来像:

   YYYYMMDD  HH
0  19900101   1
1  19900101   2
2  19900101   3
3  19900101   4
4  19900101   5

有 YYYYMMDD:整数年月日值。 HH:整数小时值。

我想要得到一个列 'DateTime',它是一个日期时间列,作为 yyyy-mm-dd hh:mm:ss。 (所以,mm:ss=00:00)。

df['DateTime'] = df['YYYYMMDD'].apply(lambda x: pd.to_datetime(str(x), format='%Y%m%d'))

给我 yyyy-mm-dd 作为日期时间,是否有一种奇特的方法可以将 'HH' 值添加到日期时间?

df['DateTime'] = df['YYYYMMDD'].apply(lambda x: pd.to_datetime(str(x), format='%Y%m%d')) + (pd.to_timedelta(df.HH, unit='H')) 

解决了。

使用pd.to_datetime and pd.to_timedelta:

    df['Datetime'] = (pd.to_datetime(df['YYYYMMDD'],format='%Y%m%d')
                        .add(pd.to_timedelta(df['HH'], 'h')))
print(df)
   YYYYMMDD  HH            Datetime
0  19900101   1 1990-01-01 01:00:00
1  19900101   2 1990-01-01 02:00:00
2  19900101   3 1990-01-01 03:00:00
3  19900101   4 1990-01-01 04:00:00
4  19900101   5 1990-01-01 05:00:00