Python pandas数据帧的日期和时间相结合

时间:2017-05-22 01:19:36

标签: python pandas dataframe

我有一个pandas数据帧如下

   Date    Time
2011-08-03  10:52:30

'Date'列的数据类型为:datetime64 [ns],'Time'列为:object

我想通过组合两列来创建一个新列,如下所示:2011-08-03 14:52:30然后计算列中连续时间之间的持续时间(增量时间)。如何将这两者与不同的数据类型结合起来并计算增量时间?

THX!

2 个答案:

答案 0 :(得分:0)

df
#         Date      Time
#0  2011-08-03  10:52:30

df.dtypes
#Date    datetime64[ns]
#Time            object
#dtype: object

Date 列格式化为字符串,将其添加到 Time 列,然后将其转换回 datetime

df['DateTime'] = pd.to_datetime(df.Date.dt.strftime("%Y-%m-%d") + " " + df.Time)

df.dtypes
#Date        datetime64[ns]
#Time                object
#DateTime    datetime64[ns]
#dtype: object

df
#          Date     Time               DateTime
#0  2011-08-03  10:52:30    2011-08-03 10:52:30

答案 1 :(得分:0)

Simplier使用to_timedelta

print (type(df.loc[0, 'Time']))
<class 'str'>

df['DateTime'] = df['Date'] + pd.to_timedelta(df.Time)
print (df)
        Date      Time            DateTime
0 2011-08-03  10:52:30 2011-08-03 10:52:30

但如果type列的Timedatetime.time,则添加astype

print (type(df.loc[0, 'Time']))
<class 'datetime.time'>

df['DateTime'] = df['Date'] + pd.to_timedelta(df['Time'].astype(str))
print (df)
        Date      Time            DateTime
0 2011-08-03  10:52:30 2011-08-03 10:52:30