def make_ecommerce_entityset(with_integer_time_index=False): """ Makes a entityset with the following shape: R Regions / \\ . S C Stores, Customers | . S P Sessions, Products \\ / . L Log """ dataframes = make_ecommerce_dataframes( with_integer_time_index=with_integer_time_index) entities = dataframes.keys() es_id = 'ecommerce' if with_integer_time_index: es_id += "_int_time_index" variable_types = make_variable_types( with_integer_time_index=with_integer_time_index) time_indexes = make_time_indexes( with_integer_time_index=with_integer_time_index) es = EntitySet(id=es_id) for entity in entities: time_index = time_indexes.get(entity, None) ti_name = None secondary = None if time_index is not None: ti_name = time_index['name'] secondary = time_index['secondary'] df = dataframes[entity] es.entity_from_dataframe(entity, df, index='id', variable_types=variable_types[entity], time_index=ti_name, secondary_time_index=secondary) es.normalize_entity('customers', 'cohorts', 'cohort', additional_variables=['cohort_name'], make_time_index=True, new_entity_time_index='cohort_end') es.add_relationships([ Relationship(es[u'régions']['id'], es['customers'][u'région_id']), Relationship(es[u'régions']['id'], es['stores'][u'région_id']), Relationship(es['customers']['id'], es['sessions']['customer_id']), Relationship(es['sessions']['id'], es['log']['session_id']), Relationship(es['products']['id'], es['log']['product_id']) ]) return es
def make_ecommerce_entityset(with_integer_time_index=False): """ Makes a entityset with the following shape: R Regions / \\ . S C Stores, Customers | . S P Sessions, Products \\ / . L Log """ dataframes = make_ecommerce_dataframes( with_integer_time_index=with_integer_time_index) dataframe_names = dataframes.keys() es_id = 'ecommerce' if with_integer_time_index: es_id += "_int_time_index" logical_types = make_logical_types( with_integer_time_index=with_integer_time_index) semantic_tags = make_semantic_tags() time_indexes = make_time_indexes( with_integer_time_index=with_integer_time_index) es = EntitySet(id=es_id) for df_name in dataframe_names: time_index = time_indexes.get(df_name, None) ti_name = None secondary = None if time_index is not None: ti_name = time_index['name'] secondary = time_index['secondary'] df = dataframes[df_name] es.add_dataframe(df, dataframe_name=df_name, index='id', logical_types=logical_types[df_name], semantic_tags=semantic_tags[df_name], time_index=ti_name, secondary_time_index=secondary) es.normalize_dataframe('customers', 'cohorts', 'cohort', additional_columns=['cohort_name'], make_time_index=True, new_dataframe_time_index='cohort_end') es.add_relationships([(u'régions', 'id', 'customers', u'région_id'), (u'régions', 'id', 'stores', u'région_id'), ('customers', 'id', 'sessions', 'customer_id'), ('sessions', 'id', 'log', 'session_id'), ('products', 'id', 'log', 'product_id')]) return es
def make_ecommerce_entityset(with_integer_time_index=False): """Makes a entityset with the following shape: R Regions / \\ . S C Stores, Customers | . S P Sessions, Products \\ / . L Log """ dataframes = make_ecommerce_dataframes( with_integer_time_index=with_integer_time_index ) dataframe_names = dataframes.keys() es_id = "ecommerce" if with_integer_time_index: es_id += "_int_time_index" logical_types = make_logical_types(with_integer_time_index=with_integer_time_index) semantic_tags = make_semantic_tags() time_indexes = make_time_indexes(with_integer_time_index=with_integer_time_index) es = EntitySet(id=es_id) for df_name in dataframe_names: time_index = time_indexes.get(df_name, None) ti_name = None secondary = None if time_index is not None: ti_name = time_index["name"] secondary = time_index["secondary"] df = dataframes[df_name] es.add_dataframe( df, dataframe_name=df_name, index="id", logical_types=logical_types[df_name], semantic_tags=semantic_tags[df_name], time_index=ti_name, secondary_time_index=secondary, ) es.normalize_dataframe( "customers", "cohorts", "cohort", additional_columns=["cohort_name"], make_time_index=True, new_dataframe_time_index="cohort_end", ) es.add_relationships( [ ("régions", "id", "customers", "région_id"), ("régions", "id", "stores", "région_id"), ("customers", "id", "sessions", "customer_id"), ("sessions", "id", "log", "session_id"), ("products", "id", "log", "product_id"), ] ) return es