2015-12-01 5 views
2

Я хотел бы преобразовать серию Pandas в случае, если ее dtype np.timedelta64. Есть ли способ проверить тип серии? series.dtype == np.timedelta64 не работает. Я мог проверить первый элемент (isinstance(first_element, np.timedelta64)) или использовать series.dtype.name, но думал, что должен быть лучший способ достичь этого.Проверить, есть ли серия timedelta

+0

Я думаю, что вы должны придерживаться своего текущего метода 'inferred_type' является атрибутом объектов Index, а не' Series' – EdChum

ответ

3
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 
Смежные вопросы