如何获得 python 中数据帧内的相关性?
How can I get the correlation within dataframe in python?
我在 python 的数据集中获取订单中产品组之间的相关性。我正在使用 pandas 数据框。我想知道某些产品组组合(例如衬衫和鞋子)是否相关。
我的数据框如下所示:
order_id
product_group
product_id
55
43
1123
55
41
5563
56
78
1114
57
50
34567
如您所见,如果订单有多个产品,订单将被拆分为多行。
我尝试将 order_id 分组并使用 pandas corr() 函数,但我需要两个输入,而我只有一个 (product_group) .
也许我需要类似余弦相似度的东西?
感谢您帮我解决这个问题!感谢您的帮助:)
如果您的产品组数量相当少,您可以尝试以下方法:
import pandas as pd
df = pd.DataFrame({'order_id': [55,55,56,57], 'product_group': [43,41,78,50] }).set_index('order_id')
df
product_group
order_id
55 43
55 41
56 78
57 50
new_df = pd.get_dummies(df, columns=['product_group']).groupby('order_id').agg('max')
new_df.corr()
product_group_41 product_group_43 product_group_50 product_group_78
product_group_41 1.0 1.0 -0.5 -0.5
product_group_43 1.0 1.0 -0.5 -0.5
product_group_50 -0.5 -0.5 1.0 -0.5
product_group_78 -0.5 -0.5 -0.5 1.0
然而,研究购物篮分析方法而不是相关性可能是明智的。但是如果你想坚持相关性,那么你需要为每个产品组创建这些指标虚拟列,如上所示。
我在 python 的数据集中获取订单中产品组之间的相关性。我正在使用 pandas 数据框。我想知道某些产品组组合(例如衬衫和鞋子)是否相关。
我的数据框如下所示:
order_id | product_group | product_id |
---|---|---|
55 | 43 | 1123 |
55 | 41 | 5563 |
56 | 78 | 1114 |
57 | 50 | 34567 |
如您所见,如果订单有多个产品,订单将被拆分为多行。
我尝试将 order_id 分组并使用 pandas corr() 函数,但我需要两个输入,而我只有一个 (product_group) .
也许我需要类似余弦相似度的东西?
感谢您帮我解决这个问题!感谢您的帮助:)
如果您的产品组数量相当少,您可以尝试以下方法:
import pandas as pd
df = pd.DataFrame({'order_id': [55,55,56,57], 'product_group': [43,41,78,50] }).set_index('order_id')
df
product_group
order_id
55 43
55 41
56 78
57 50
new_df = pd.get_dummies(df, columns=['product_group']).groupby('order_id').agg('max')
new_df.corr()
product_group_41 product_group_43 product_group_50 product_group_78
product_group_41 1.0 1.0 -0.5 -0.5
product_group_43 1.0 1.0 -0.5 -0.5
product_group_50 -0.5 -0.5 1.0 -0.5
product_group_78 -0.5 -0.5 -0.5 1.0
然而,研究购物篮分析方法而不是相关性可能是明智的。但是如果你想坚持相关性,那么你需要为每个产品组创建这些指标虚拟列,如上所示。