【问题标题】:Check if series is timedelta检查系列是否为 timedelta
【发布时间】:2015-12-01 08:32:20
【问题描述】:

我想转换一个 Pandas 系列,以防它的 dtype 是 np.timedelta64。有什么办法可以检查系列的类型吗? series.dtype == np.timedelta64 不起作用。我可以检查第一个元素 (isinstance(first_element, np.timedelta64)) 或使用series.dtype.name,但我认为必须有更好的方法来实现这一点。

【问题讨论】:

  • 我认为你必须坚持你当前的方法inferred_typeIndex对象的属性而不是Series

标签: python numpy pandas timedelta


【解决方案1】:
In [3]: s = Series(pd.to_timedelta(np.arange(5),unit='s'))

In [4]: s
Out[4]:
0   00:00:00
1   00:00:01
2   00:00:02
3   00:00:03
4   00:00:04
dtype: timedelta64[ns]

In [6]: s.dtype == 'timedelta64[ns]'
Out[6]: True

In [10]: s.dtype == 'm8[ns]'
Out[10]: True

# select_dtypes is only defined on frames
# this is generally the most robust method
In [11]: s.to_frame().select_dtypes(include=['timedelta'])
Out[11]:
         0
0 00:00:00
1 00:00:01
2 00:00:02
3 00:00:03
4 00:00:04

In [12]: from pandas.core.common import is_timedelta64_dtype

In [13]: is_timedelta64_dtype(s.dtype)
Out[13]: True

【讨论】:

    猜你喜欢
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    • 1970-01-01
    • 2020-02-04
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多