python dataframe计算两个日期之间天数 两种思路(推荐思路2)

本文介绍如何使用Python的pandas库来计算DataFrame中两列日期数据的差值,包括将字符串转换为日期格式,以及计算两个日期之间的天数。通过实际代码示例,展示了两种计算方法,一种是直接使用lambda函数,另一种是利用pandas.series.dt.days属性。
思路1:
  • 1、字符串转日期格式,对于dataframe格式的日期数据datadf[‘A’]可以采用 pd.to_dataframe(datadf[‘A’])
  • 2、对于日期格式的两个数据date1、date2,可以直接采用(date2 - date1).days 得到两个日期之间的天数
  • 3、对于dateframe中的日期series,借助 lambda实现.

栗子:

import numpy as np
import pandas as pd
import time,datetime

#创建一个空的dateframe
data = pd.DataFrame({'A':['2019-01-01 01:00:00','2019-03-01 09:00:03','2019-12-31 01:00:00'],
                     'B':['2020-01-03 09:23:34','2020-03-04 07:35:34','2020-03-27 16:00:23'], 
                     'C':['2020-01-03 19:23:34','2020-02-04 07:35:34','2020-03-23 16:00:23']})

leadtime = (pd.to_datetime(data['B'])-pd.to_datetime(data['A'])).map(lambda x:x.days)
print(leadtime)

输出:
0 367
1 368
2 87
dtype: int64

思路2:
  • 1、对于dateframe中的series可以利用pandas.series.dt.date,实现取天数。
  • 2、这里使用的是 pandas.series.dt.days,这一句完成了数据类型从object到datetime64的变化。

栗子:

leadtime1 =(pd.to_datetime(data['B'])-pd.to_datetime(data['A'])).dt.days
#leadtime1 = pd.to_timedelta(pd.to_datetime(data['B'])-pd.to_datetime(data['A'])).dt.days
print(pd.to_datetime(data['B'])-pd.to_datetime(data['A']))
print(leadtime1)

输出:
0 367 days 08:23:34
1 368 days 22:35:31
2 87 days 15:00:23
dtype: timedelta64[ns]

0 367
1 368
2 87
dtype: int64

参考:
https://blog.csdn.net/starmoth/article/details/91469115
https://blog.csdn.net/ssswill/article/details/86530045

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值