1919 is_bool_dtype , needs_i8_conversion ,
2020 is_categorical , is_datetimetz ,
2121 is_datetime64_any_dtype , is_datetime64tz_dtype ,
22- is_timedelta64_dtype ,
22+ is_timedelta64_dtype , is_interval_dtype ,
2323 is_scalar , is_list_like ,
2424 _ensure_platform_int , _ensure_object ,
2525 _ensure_float64 , _ensure_uint64 ,
@@ -610,19 +610,6 @@ def value_counts(values, sort=True, ascending=False, normalize=False,
610610 except TypeError :
611611 raise TypeError ("bins argument only works with numeric data." )
612612
613- if is_categorical_dtype (values ) or is_sparse (values ):
614-
615- # handle Categorical and sparse,
616- result = Series (values ).values .value_counts (dropna = dropna )
617- result .name = name
618- counts = result .values
619-
620- else :
621- keys , counts = _value_counts_arraylike (values , dropna )
622-
623- if not isinstance (keys , Index ):
624- keys = Index (keys )
625- result = Series (counts , index = keys , name = name )
626613 # count, remove nulls (from the index), and but the bins
627614 result = ii .value_counts (dropna = dropna )
628615 result = result [result .index .notnull ()]
@@ -636,6 +623,22 @@ def value_counts(values, sort=True, ascending=False, normalize=False,
636623 # normalizing is by len of all (regardless of dropna)
637624 counts = np .array ([len (ii )])
638625
626+ else :
627+
628+ if is_categorical_dtype (values ) or is_sparse (values ):
629+
630+ # handle Categorical and sparse,
631+ result = Series (values ).values .value_counts (dropna = dropna )
632+ result .name = name
633+ counts = result .values
634+
635+ else :
636+ keys , counts = _value_counts_arraylike (values , dropna )
637+
638+ if not isinstance (keys , Index ):
639+ keys = Index (keys )
640+ result = Series (counts , index = keys , name = name )
641+
639642 if sort :
640643 result = result .sort_values (ascending = ascending )
641644
0 commit comments