@@ -82,7 +82,16 @@ define([
8282 \n}, index=['Combination']+${data}.columns.to_list())\
8383 \n_duplicated_df" , dtype : [ 'DataFrame' , 'Series' ] , toframe : true } ,
8484 { id : 'unique' , label : 'Unique' , code : '${data}.unique()' , dtype : [ 'Series' ] } ,
85- { id : 'value_counts' , label : 'Value counts' , code : '${data}.value_counts()' , dtype : [ 'DataFrame' , 'Series' ] } ,
85+ { id : 'value_counts' , label : 'Value counts' , code : "_value_counts_dict = {}\
86+ \nfor col in ${data}.columns:\
87+ \n if pd.api.types.is_numeric_dtype(${data}[col]):\
88+ \n _value_counts = ${data}[col].value_counts(bins=10, sort=False)\
89+ \n _value_counts_dict[(col, 'bins')] = list(_value_counts.index) + ['']*(10 - len(_value_counts))\
90+ \n else:\
91+ \n _value_counts = ${data}[col].value_counts()\
92+ \n _value_counts_dict[(col, 'category')] = list(_value_counts.index) + ['']*(10 - len(_value_counts))\
93+ \n _value_counts_dict[(col, 'count')] = list(_value_counts.values) + ['']*(10 - len(_value_counts))\
94+ \npd.DataFrame(_value_counts_dict)" , dtype : [ 'DataFrame' , 'Series' ] , toframe : true } ,
8695 ]
8796 } ,
8897 {
@@ -92,10 +101,10 @@ define([
92101 child : [
93102 /** checkbox */
94103 { id : 'count' , label : 'count' , code : '${data}.count()' } ,
95- { id : 'min' , label : 'min' , code : '${data}.min()' } ,
96- { id : 'max' , label : 'max' , code : '${data}.max()' } ,
104+ { id : 'min' , label : 'min' , code : '${data}.min(numeric_only=True )' } ,
105+ { id : 'max' , label : 'max' , code : '${data}.max(numeric_only=True )' } ,
97106 { id : 'quantile' , label : 'quantile' , code : '${data}.quantile(numeric_only=True)' } ,
98- { id : 'sum' , label : 'sum' , code : '${data}.sum()' } ,
107+ { id : 'sum' , label : 'sum' , code : '${data}.sum(numeric_only=True )' } ,
99108 { id : 'mean' , label : 'mean' , code : '${data}.mean(numeric_only=True)' } ,
100109 { id : 'median' , label : 'median' , code : '${data}.median(numeric_only=True)' } ,
101110 // { id: 'mad', label: 'mad', code: '${data}.mad(numeric_only=True)' }, // FutureWarning: Deprecated and will be removed
@@ -552,14 +561,20 @@ define([
552561 let childObj = infoObj . child . find ( obj => obj . id === itemId ) ;
553562 statList . push ( com_util . formatString ( "'{0}': {1}" , itemId , childObj . code ) ) ;
554563 } ) ;
555- if ( currentDtype === 'Series' ) {
564+ if ( currentDtype === 'Series' && selected . length > 0 ) {
556565 // if multiple stats selected, set series data as dataframe
557566 dataVar = new com_String ( ) ;
558567 dataVar . appendFormat ( "{0}[[{1}]]" , data , selected . map ( col => col . code ) . join ( ',' ) ) ;
559568 currentDtype = 'DataFrame' ;
560569 }
561570 codePattern = com_util . formatString ( "pd.DataFrame({{0}})" , statList . join ( ',' ) ) ;
562571 } else {
572+ if ( currentDtype === 'Series' && selected . length > 0 ) {
573+ // if multiple stats selected, set series data as dataframe
574+ dataVar = new com_String ( ) ;
575+ dataVar . appendFormat ( "{0}[[{1}]]" , data , selected . map ( col => col . code ) . join ( ',' ) ) ;
576+ currentDtype = 'DataFrame' ;
577+ }
563578 let childObj = infoObj . child . find ( obj => obj . id === menuItem [ 0 ] ) ;
564579 codePattern = childObj . code ;
565580 }
@@ -570,10 +585,16 @@ define([
570585 // only one method selected
571586 if ( menuItem . length > 0 && infoObj . child ) {
572587 let childObj = infoObj . child . find ( obj => obj . id === menuItem [ 0 ] ) ;
573- if ( childObj . toframe === true && currentDtype === 'Series' ) {
574- dataVar = new com_String ( ) ;
575- dataVar . appendFormat ( "{0}[[{1}]]" , data , selected . map ( col => col . code ) . join ( ',' ) ) ;
576- currentDtype = 'DataFrame' ;
588+ if ( childObj . toframe === true ) {
589+ if ( dtype === 'Series' ) {
590+ dataVar = new com_String ( ) ;
591+ dataVar . appendFormat ( "{0}.to_frame()" , data ) ;
592+ currentDtype = 'DataFrame' ;
593+ } else if ( currentDtype === 'Series' ) {
594+ dataVar = new com_String ( ) ;
595+ dataVar . appendFormat ( "{0}[[{1}]]" , data , selected . map ( col => col . code ) . join ( ',' ) ) ;
596+ currentDtype = 'DataFrame' ;
597+ }
577598 }
578599 codePattern = childObj . code ;
579600 } else {
0 commit comments