【问题标题】:Accessing .seconds or .days attribute of timedelta data in a Pandas dataframe在 Pandas 数据框中访问 timedelta 数据的 .seconds 或 .days 属性
【发布时间】:2014-11-18 01:24:39
【问题描述】:

我想将Pandas Seriestimedelta64 类型的数据转换为timedelta64 到小时。

为此,我想访问timedelta64.seconds.days 属性,以便我可以自己转换这些单位as per this SO post

但是,当我使用df['col'] 选择数据时,当我尝试使用.seconds.days 时得到attribute error,尽管它的dtype<m8[ns](我相信它代表timedelta64) .

我还需要执行其他步骤吗?

【问题讨论】:

    标签: python-2.7 pandas timedelta


    【解决方案1】:

    这个问题指的是内置的 Python timedelta 对象,而您正在处理一个由 timedelta64 值组成的 numpy 数组。请参阅此question - 您可以使用 astype 转换为小时或秒。

    td.astype('timedelta64[D]')
    td.astype('timedelta64[s]')
    

    或者,您可以除以适当的单位。

    td / np.timedelta64(1, 'D')
    td / np.timedelta64(1, 's')
    

    【讨论】:

    • 谢谢,这两种方法都有效。这两种方法有什么区别,还是纯粹是问题或个人喜好? @chrisb
    • @Bprodz - 不能肯定地告诉你,但两者都应该给出相同的答案。在一些测试数据上,astype 更快一些(并且可能更清楚地传达意图),所以这可能是要走的路。
    猜你喜欢
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-01
    • 1970-01-01
    • 2020-01-10
    • 1970-01-01
    • 2018-04-06
    相关资源
    最近更新 更多