pandas计算截止日与上线日期间隔时如何仅返回天数不含时分秒
你当前计算得到的时间差为timedelta64类型,要提取纯整数天数、去除时分秒信息,直接调用该类型序列的.dt.days属性即可,该属性会舍去时分秒部分,返回向下取整的整数天数。
修改后代码
import pandas as pd df = pd.read_csv('/content/drive/MyDrive/Colab Datasets/KickstarterRevised.csv') df['deadline'] = pd.to_datetime(df['deadline']) df['launched'] = pd.to_datetime(df['launched']) # 提取整数天数,向下取整 df['difference'] = df['deadline'].sub(df['launched'], axis=0).dt.days df['difference']
输出样例
0 58 1 45 2 30 3 55 4 35 .. 4994 40 4995 8 4996 38 4997 30 4998 30 Name: difference, Length: 4999, dtype: int64
补充说明
如果需要将时间差四舍五入到最近的整数天,可以将时间差转换为总秒数后除以一天的秒数(86400)再取整:
# 四舍五入取整数天数 df['difference'] = (df['deadline'] - df['launched']).dt.total_seconds().div(86400).round(0).astype(int)
内容的提问来源于stack exchange,提问作者Bryan Lucky-Heard
相关产品推荐
相关产品推荐

