@@ -389,11 +389,14 @@ def from_product(cls, f, learner_type, learner_kwargs, combos):
389
389
learners .append (learner )
390
390
return cls (learners , cdims = arguments )
391
391
392
- def to_dataframe (self , ** kwargs ):
392
+ def to_dataframe (self , index_name : str = "learner_index" , ** kwargs ):
393
393
"""Return the data as a concatenated `pandas.DataFrame` from child learners.
394
394
395
395
Parameters
396
396
----------
397
+ index_name : str, optional
398
+ The name of the index column indicating the learner index,
399
+ by default "learner_index".
397
400
**kwargs : dict
398
401
Keyword arguments passed to each ``child_learner.to_dataframe(**kwargs)``.
399
402
@@ -408,10 +411,33 @@ def to_dataframe(self, **kwargs):
408
411
"""
409
412
if not with_pandas :
410
413
raise ImportError ("pandas is not installed." )
411
- dfs = [learner .to_dataframe (** kwargs ) for learner in self .learners ]
414
+ dfs = []
415
+ for i , learner in enumerate (self .learners ):
416
+ df = learner .to_dataframe (** kwargs )
417
+ cols = list (df .columns )
418
+ df [index_name ] = i
419
+ df = df [[index_name ] + cols ]
420
+ dfs .append (df )
412
421
df = pandas .concat (dfs , axis = 0 , ignore_index = True )
413
422
return df
414
423
424
+ def load_dataframe (
425
+ self , df : pandas .DataFrame , index_name : str = "learner_index" , ** kwargs
426
+ ):
427
+ """Load the data from a `pandas.DataFrame` into the child learners.
428
+
429
+ Parameters
430
+ ----------
431
+ df : pandas.DataFrame
432
+ DataFrame with the data to load.
433
+ index_name : str, optional
434
+ The ``index_name`` used in `to_dataframe`, by default "learner_index".
435
+ **kwargs : dict
436
+ Keyword arguments passed to each ``child_learner.load_dataframe(**kwargs)``.
437
+ """
438
+ for i , gr in df .groupby (index_name ):
439
+ self .learners [i ].load_dataframe (gr , ** kwargs )
440
+
415
441
def save (self , fname , compress = True ):
416
442
"""Save the data of the child learners into pickle files
417
443
in a directory.
0 commit comments