如何在Pandas中高效计算日期间隔天数,规避Series无days属性错误?
Pandas高效计算日期间隔天数解决方案
你遇到的问题本质是:第一段代码生成的是Timedelta类型的Series,.days是单个Timedelta对象的属性,不能直接在Series上调用,因此报错。
以下是两种无需使用apply的高效解决方案:
直接使用Pandas内置的
dt.days属性(推荐,最简洁高效)pre_start['exposure_days'] = (datetime.now() - pd.to_datetime(pre_start['First_Receive_Date'])).dt.days这是Pandas专为TimedeltaSeries设计的向量化操作,底层通过C实现,处理大数据量时性能远优于逐行遍历的
apply。基于总秒数转换计算(适用于需要保留小数天数的场景)
pre_start['exposure_days'] = (datetime.now() - pd.to_datetime(pre_start['First_Receive_Date'])).total_seconds() / (24 * 3600)通过将时间间隔转换为总秒数,再除以一天的秒数(24*3600),得到包含小数的天数结果。
内容的提问来源于stack exchange,提问作者jbuddy_13
相关产品推荐
相关产品推荐

