根据数据中的当前组合,创建一种数据框列的笛卡尔积
Create a sort of Cartesian product of dataframe columns, based on the present combinations in the data
目前我正在处理产品数据(来自网上商店),这些产品具有分层类别结构(类别 1、2、3),其中 3 是 'most specific category'(想想:足球鞋(1)、人造草鞋 (2)、阿迪达斯 (3))。
由于数据集包含超过 25000 个条目,我开始寻找一种方法来创建一种可以告诉我以下信息的映射:
数据中存在 1,2,3(或仅 1,2)的哪些可能组合?我的意思并不是说 所有可能的组合 ,而只是那些存在于数据中的组合。
我很快就用itertools
得出了笛卡尔积。然而,我旁边的运行变成了memory error
,我相信itertools
(以及笛卡尔积的思想)是让1,2,3的所有可能组合(而不仅仅是那些实际存在的)。
考虑以下数据框:
df = pd.DataFrame({'Product ID': [1,2,3,4], 'Category 1': ['A','B','B','B'], 'Category 2':['C', 'D', 'D', 'E']})
所以在这种情况下,我希望看到以下输出:
A, C
、B,D
、B,E
。
我希望清楚:)
PS:有人可以解释我如何将 'Dataframe blocks' 添加到 Whosebug 问题,而不是像这样的字典吗?
(df['Category 1'] + df['Category 2']).unique()
或者如果你想计算组合数:
(df['Category 1'] + df['Category 2']).value_counts()
目前我正在处理产品数据(来自网上商店),这些产品具有分层类别结构(类别 1、2、3),其中 3 是 'most specific category'(想想:足球鞋(1)、人造草鞋 (2)、阿迪达斯 (3))。
由于数据集包含超过 25000 个条目,我开始寻找一种方法来创建一种可以告诉我以下信息的映射: 数据中存在 1,2,3(或仅 1,2)的哪些可能组合?我的意思并不是说 所有可能的组合 ,而只是那些存在于数据中的组合。
我很快就用itertools
得出了笛卡尔积。然而,我旁边的运行变成了memory error
,我相信itertools
(以及笛卡尔积的思想)是让1,2,3的所有可能组合(而不仅仅是那些实际存在的)。
考虑以下数据框:
df = pd.DataFrame({'Product ID': [1,2,3,4], 'Category 1': ['A','B','B','B'], 'Category 2':['C', 'D', 'D', 'E']})
所以在这种情况下,我希望看到以下输出:
A, C
、B,D
、B,E
。
我希望清楚:)
PS:有人可以解释我如何将 'Dataframe blocks' 添加到 Whosebug 问题,而不是像这样的字典吗?
(df['Category 1'] + df['Category 2']).unique()
或者如果你想计算组合数:
(df['Category 1'] + df['Category 2']).value_counts()