@@ -743,10 +743,12 @@ def _formatter(col_index, col):
743
743
if not any ((np .isnan (v ) or np .isinf (v ) for v in [o_s , o_e ])):
744
744
dtype_data ["hasOutliers" ] += int (((s < o_s ) | (s > o_e )).sum ())
745
745
dtype_data ["outlierRange" ] = dict (lower = o_s , upper = o_e )
746
- if hasattr (s , "skew" ):
747
- dtype_data ["skew" ] = json_float (s .skew ())
748
- if hasattr (s , "kurt" ):
749
- dtype_data ["kurt" ] = json_float (s .kurt ())
746
+ skew_val = pandas_util .run_function (s , "skew" )
747
+ if skew_val is not None :
748
+ dtype_data ["skew" ] = json_float (skew_val )
749
+ kurt_val = pandas_util .run_function (s , "kurt" )
750
+ if kurt_val is not None :
751
+ dtype_data ["kurt" ] = json_float (kurt_val )
750
752
751
753
if classification in ["F" , "I" ] and not s .isnull ().all ():
752
754
# build variance flag
@@ -761,10 +763,12 @@ def _formatter(col_index, col):
761
763
762
764
if classification in ["D" ] and not s .isnull ().all ():
763
765
timestamps = apply (s , lambda x : json_timestamp (x , np .nan ))
764
- if hasattr (timestamps , "skew" ):
765
- dtype_data ["skew" ] = json_float (timestamps .skew ())
766
- if hasattr (timestamps , "kurt" ):
767
- dtype_data ["kurt" ] = json_float (timestamps .kurt ())
766
+ skew_val = pandas_util .run_function (timestamps , "skew" )
767
+ if skew_val is not None :
768
+ dtype_data ["skew" ] = json_float (skew_val )
769
+ kurt_val = pandas_util .run_function (timestamps , "kurt" )
770
+ if kurt_val is not None :
771
+ dtype_data ["kurt" ] = json_float (kurt_val )
768
772
769
773
if classification == "S" and not dtype_data ["hasMissing" ]:
770
774
if (
0 commit comments