如何将timedelta类型列转为分钟?解决AttributeError报错
解决timedelta列转分钟的报错问题
报错原因:total_seconds()是单个timedelta对象的方法,你直接在pandas Series(整列数据)上调用该方法,而Series本身没有这个属性,因此触发AttributeError。
正确解决方案
首先确认Tiempo_xx_entre列是timedelta类型(可通过Orden['Tiempo_xx_entre'].dtype查看),如果不是,先转换类型:
Orden['Tiempo_xx_entre'] = pd.to_timedelta(Orden['Tiempo_xx_entre'])
然后用以下两种方法之一转换为总分钟:
方法1:通过总秒数转换(推荐)
利用pandas的dt访问器调用元素级的total_seconds(),再除以60得到分钟:
Orden['minutos'] = Orden['Tiempo_xx_entre'].dt.total_seconds() / 60
方法2:拆分时间组件计算
提取天、小时、分钟组件,计算总分钟数:
Orden['minutos'] = (Orden['Tiempo_xx_entre'].dt.days * 1440 + Orden['Tiempo_xx_entre'].dt.hours * 60 + Orden['Tiempo_xx_entre'].dt.minutes)
内容的提问来源于stack exchange,提问作者Erick Toscano S.
相关产品推荐
相关产品推荐

