我目前在pandas DataFrame中有各种时间列(DateTime格式),如下所示:
Entry Time Exit Time
00:30:59.555 06:30:59.555
00:56:43.200
10:30:30.500 11:30:30.500
如果输入时间和退出时间都存在,我想在数据框中的新列中返回这些时间之间的差(退出时间-进入时间)。否则,我想跳过该行,如下所示:
Entry Time Exit Time Time Difference
00:30:59.555 06:30:59.555 06:00:00.000
00:56:43.200
10:30:30.500 12:00:30.500 01:30:00.000
我对Python相当陌生,因此如果这是一个明显的问题,我深表歉意。任何帮助将不胜感激!
如果您的dtypes确实是日期时间,那么它很简单:
In [36]:
df['Difference Time'] = df['Exit Time'] - df['Entry Time']
df
Out[36]:
Entry Time Exit Time Difference Time
0 2014-08-01 00:30:59.555000 2014-08-01 06:30:59.555000 06:00:00
1 2014-08-01 00:56:43.200000 NaT NaT
2 2014-08-01 10:30:30.500000 2014-08-01 11:30:30.500000 01:00:00
[3 rows x 3 columns]
如果不是,则需要使用pd.to_datetime
例如
df['Entry time'] = pd.to_datetime(df['Entry Time'])
编辑
您的数据似乎有些奇怪,我不太了解,但以下内容似乎对您有用:
df.dropna()['Exit_Time'] - df.dropna()['Entry_Time']
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句