我在一个数据框中有两列,fromdate
和 todate
。
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/