2015-10-21 43 views
1

我有两个DF列与字符串值之间的时间差:大熊猫:计算DF列

df['starttime']       df['endtime'] 

0   2015-10-06 18:35:33   0   2015-10-06 18:35:58 
1  2015-10-08 17:51:21.999000   1   2015-10-08 17:52:10 
2  2015-10-08 20:51:55.999000   2   2015-10-08 20:52:21 
3  2015-10-05 15:16:49.999000   3   2015-10-05 15:17:00 
4  2015-10-05 15:16:53.999000   4   2015-10-05 15:17:22 
5  2015-10-05 15:17:11.999000   5  2015-10-05 15:17:23.999000 

我还想来计算这两列

这里的区别是什么,我尝试,但未能:

(df['starttime']-df['endtime']).astype('timedelta64[h]')) 

unsupported operand type(s) for -: 'str' and 'str' 

我认为astype会将str转换为timedelta?

+2

你想首先通过'pd.to_datetime()'转换日期列,然后采取差异? – Zero

+0

工作!谢谢。 –

回答

3

Convert the date strings to pandas.Timestamps:当您尝试减去两个系列包含字符串

df['starttime']-df['endtime'] 

unsupported operand type(s) for -: 'str' and 'str' 

发生:

df['starttime']-df['endtime'] 
df['starttime'] = pd.to_datetime(df['starttime']) 
df['endtime'] = pd.to_datetime(df['endtime']) 

然后走差异化而不是首先将字符串转换为时间戳。

+0

是的,就是这样。谢谢! –