python - 以小时和分钟计算两个 Pandas 列之间的时间差

标签 python pandas datetime python-datetime

我在一个数据框中有两列,fromdatetodate

import pandas as pd

data = {'todate': [pd.Timestamp('2014-01-24 13:03:12.050000'), pd.Timestamp('2014-01-27 11:57:18.240000'), pd.Timestamp('2014-01-23 10:07:47.660000')],
        'fromdate': [pd.Timestamp('2014-01-26 23:41:21.870000'), pd.Timestamp('2014-01-27 15:38:22.540000'), pd.Timestamp('2014-01-23 18:50:41.420000')]}

df = pd.DataFrame(data)

我添加了一个新列,diff,用于查找两个日期之间的差异

df['diff'] = df['fromdate'] - df['todate']

我得到 diff 列,但它包含 days,超过 24 小时。

                   todate                fromdate                   diff
0 2014-01-24 13:03:12.050 2014-01-26 23:41:21.870 2 days 10:38:09.820000
1 2014-01-27 11:57:18.240 2014-01-27 15:38:22.540 0 days 03:41:04.300000
2 2014-01-23 10:07:47.660 2014-01-23 18:50:41.420 0 days 08:42:53.760000

如何将我的结果转换为小时和分钟(即将天转换为小时)?

最佳答案

Pandas 时间戳差异返回一个 datetime.timedelta 对象。这可以通过使用 *as_type* 方法轻松转换为小时,就像这样

import pandas
df = pandas.DataFrame(columns=['to','fr','ans'])
df.to = [pandas.Timestamp('2014-01-24 13:03:12.050000'), pandas.Timestamp('2014-01-27 11:57:18.240000'), pandas.Timestamp('2014-01-23 10:07:47.660000')]
df.fr = [pandas.Timestamp('2014-01-26 23:41:21.870000'), pandas.Timestamp('2014-01-27 15:38:22.540000'), pandas.Timestamp('2014-01-23 18:50:41.420000')]
(df.fr-df.to).astype('timedelta64[h]')

屈服,

0    58
1     3
2     8
dtype: float64

关于python - 以小时和分钟计算两个 Pandas 列之间的时间差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22923775/

相关文章:

python - 使用 melt 后分类 dtype 发生变化

java - 在JAVA中从GMT时间长获取区域设置日期时间字符串

c# - 使用 nodatime 如何找到两个 ZonedDateTime 对象之间的区别

Python - 如何将视频文件读取为二进制数据?

python - Groupby 和基于特定行值的计算

python - 如何使用文件目录构建 setup.py

python - 使用 C 扩展 Python 错误 : Segmentation Fault: 11 in Python [MacOS X]

Python如何替换数据框中的列值

python - 如何使用复杂的条件以有效的方式在 Pandas 中逐列填充?

python - 向日期时间添加秒数