如果两个日期时间都存在于pandas DataFrame中,则计算它们之间的差异

时间:2014-08-01 19:29:37

标签: python datetime pandas

我目前在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很新,所以如果这是一个显而易见的问题我很抱歉。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

如果您的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']