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

标签 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 的新手,如果这是一个显而易见的问题,我深表歉意。任何帮助将不胜感激!

最佳答案

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

关于python - 如果两个日期时间都存在于 pandas DataFrame 中,则计算两个日期时间之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25087370/

相关文章:

python - 如何将 Pandas 时间序列转换为带有字符串键的字典

python - 在 python3 中清除异步队列的正确方法?

python - Django 管理操作添加批量多字段?

c# - 从服务器端到 Javascript 的时区不正确

javascript - 计算重叠时间段的持续时间

javascript - moment.js 时间差显示错误结果

python - Pandas 'replace' 如何在 'loc' 之后工作?

python - 样本数(行)标准化的方法

python - Dask 和 fbprophet

python - 创建与每一行具有相同列表的新 pandas 列?