我有一个pandas数据帧如下
Date Time
2011-08-03 10:52:30
'Date'列的数据类型为:datetime64 [ns],'Time'列为:object
我想通过组合两列来创建一个新列,如下所示:2011-08-03 14:52:30然后计算列中连续时间之间的持续时间(增量时间)。如何将这两者与不同的数据类型结合起来并计算增量时间?
THX!
答案 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
列的Time
为datetime.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