计算Pandas DataFrame中两个日期时间的差值

4 投票
1 回答
1477 浏览
提问于 2025-04-18 15:41

我现在在一个pandas数据框中有几个时间列(日期时间格式),如下所示:

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 个回答

2

如果你的数据类型确实是日期时间类型,那就非常简单:

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']

撰写回答