首页 > 解决方案 > 如何结合日期时间和时间来获取日期时间?

问题描述

我的数据有df:

+-----+---------------------+--------+--------------------+--------------------+--------------+--------------+
|     | date                | time   | home_team          | away_team          |   home_score |   away_score |
+=====+=====================+========+====================+====================+==============+==============+
|  50 | 2014-11-07 00:00:00 | 18:30  | Aalen              | FSV Frankfurt      |            0 |            1 |
+-----+---------------------+--------+--------------------+--------------------+--------------+--------------+
|  51 | 2014-11-07 00:00:00 | 18:30  | Kaiserslautern     | Bochum             |            2 |            2 |
+-----+---------------------+--------+--------------------+--------------------+--------------+--------------+

我希望将日期和时间列组合为:

+-----+---------------------+--------+--------------------+--------------------+--------------+--------------+
|     | datetime            | time   | home_team          | away_team          |   home_score |   away_score |
+=====+=====================+========+====================+====================+==============+==============+
|  50 | 2014-11-07 18:30:00 | 18:30  | Aalen              | FSV Frankfurt      |            0 |            1 |
+-----+---------------------+--------+--------------------+--------------------+--------------+--------------+
|  51 | 2014-11-07 18:30:00 | 18:30  | Kaiserslautern     | Bochum             |            2 |            2 |
+-----+---------------------+--------+--------------------+--------------------+--------------+--------------+

如何合并这两列?获取日期时间?

标签: pythonpandasdatetime

解决方案


如有必要,将两列都转换为日期时间和时间增量,使用to_datetimewith to_timedelta

df['date'] = pd.to_datetime(df['date']) + pd.to_timedelta(df['time'] + ':00')

如果已经有日期时间,则仅添加 timedeltas:

df['date'] += pd.to_timedelta(df['time'] + ':00')

推荐阅读