You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取PyArrow dtype的Pandas Timedelta中的秒数?

Pandas 2.1.3中PyArrow Duration类型转秒数的解决方案

PyArrow的duration[ns][pyarrow]不属于Pandas的datetimelike范畴,所以无法直接用.dt访问器调用total_seconds(),以下是几种可行解决方案:

  • 使用PyArrow原生计算函数
    借助pyarrow.compute模块的duration_seconds()直接处理PyArrow数组,再转回Pandas Series:

    import pyarrow.compute as pc
    
    # 替换为你的DataFrame和列名
    df['DURATION_SECONDS'] = pc.duration_seconds(df['DURATION_NEW'].array).to_pandas()
    
  • 临时转换为NumPy timedelta类型
    如果可以接受临时转成传统NumPy dtype,先转换再用熟悉的.dt方法:

    df['DURATION_SECONDS'] = df['DURATION_NEW'].astype('timedelta64[ns]').dt.total_seconds()
    
  • 使用Pandas的Arrow访问器
    Pandas 2.0+支持通过.arrow访问器直接调用PyArrow的计算能力,写法更简洁:

    df['DURATION_SECONDS'] = df['DURATION_NEW'].arrow.compute('duration_seconds').to_pandas()
    

目前Pandas对PyArrow原生类型的.dt访问器支持不完善,优先推荐前两种方案,尤其是第一种纯PyArrow的处理方式,性能更优。

内容的提问来源于stack exchange,提问作者ivegotaquestion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 23:58:17