Pandas:如何从另一列设置日期时间的小时数?

我有一个dataframe包括datetime日期列和时间列。

像这样:

min hour    date    
0   0   2020-12-01  
1   5   2020-12-02  
2   6   2020-12-01

我需要一个datetime包含日期和小时的列。

像这样 :

min hour    date        datetime
0   0   2020-12-01  2020-12-01 00:00:00
0   5   2020-12-02  2020-12-02 05:00:00 
0   6   2020-12-01  2020-12-01 06:00:00

我该怎么做?

回答

使用pd.to_datetimepd.to_timedelta

In [393]: df['date'] = pd.to_datetime(df['date'])

In [396]: df['datetime'] = df['date'] +  pd.to_timedelta(df['hour'], unit='h')
    
In [405]: df
Out[405]: 
   min  hour       date            datetime
0    0     0 2020-12-01 2020-12-01 00:00:00
1    1     5 2020-12-02 2020-12-02 05:00:00
2    2     6 2020-12-01 2020-12-01 06:00:00


回答

您也可以尝试使用applyand np.timedelta64

df['datetime'] = df['date'] + df['hour'].apply(lambda x: np.timedelta64(x, 'h'))
print(df)

输出:

   min  hour       date            datetime
0    0     0 2020-12-01 2020-12-01 00:00:00
1    1     5 2020-12-02 2020-12-02 05:00:00
2    2     6 2020-12-01 2020-12-01 06:00:00


以上是Pandas:如何从另一列设置日期时间的小时数?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>