|
- from d3m import container
- from d3m.base import utils as base_utils
-
-
- class CombineColumns:
- params = [[100, 300, 500, 700, 900]]
- param_names = ['columns']
-
- def setup(self, columns):
- self.large_dataframe_with_many_columns = container.DataFrame({str(i): [j for j in range(5)] for i in range(columns)}, columns=[str(i) for i in range(columns)], generate_metadata=True)
- self.list_of_many_dataframe_columns = [
- container.DataFrame({str(i): [j for j in range(5, 10)]}, columns=[str(i)], generate_metadata=True)
- for i in range(int(columns / 2))
- ]
-
- def time_append(self, columns):
- base_utils.combine_columns(
- self.large_dataframe_with_many_columns,
- list(range(int(columns / 4), int(columns / 2))), # Just 1/4 of columns.
- self.list_of_many_dataframe_columns,
- return_result='append',
- add_index_columns=True,
- )
-
- def time_replace(self, columns):
- base_utils.combine_columns(
- self.large_dataframe_with_many_columns,
- list(range(int(columns / 4), int(columns / 2))), # Just 1/4 of columns.
- self.list_of_many_dataframe_columns,
- return_result='replace',
- add_index_columns=True,
- )
-
- def time_new(self, columns):
- base_utils.combine_columns(
- self.large_dataframe_with_many_columns,
- list(range(int(columns / 4), int(columns / 2))), # Just 1/4 of columns.
- self.list_of_many_dataframe_columns,
- return_result='new',
- add_index_columns=True,
- )
|