需要kaggle里下载instacart-market-basket-analysis数据集
instacart:把用户分成几个类别 用户-购买的物品类别
把四张表合并成一张表
pd.merge() 找到两列相同的数值,第二个参数 on 代表 要在 哪一个 列上 进行 merge (这里不太清楚可以查一查merge函数的使用)
on指定主键,所以只要主键的信息匹配,信息就会被保留
交叉表(特殊的分组)
import pandas as pd
from sklearn.decomposition import PCA
#读取四张表csv的数据
prior = pd.read_csv("./instacart-market-basket-analysis/order_products__prior.csv")
products = pd.read_csv("./instacart-market-basket-analysis/products.csv ")
orders = pd.read_csv("./instacart-market-basket-analysis/orders.csv")
aisles = pd.read_csv("./instacart-market-basket-analysis/aisles.csv")
#合并四张表到一张表中(用户-物品类别)
_mg = pd.merge(prior, products, on=['product_id', 'product_id'])
_mg = pd.merge(_mg, orders, on=['order_id', 'order_id'])
meg = pd.merge(_mg, aisles, on=['aisle_id', 'aisle_id'])
cross = pd.crosstab(meg['user_id', 'aisle_id']) #建立交叉表
pca = PCA(n_components=0.9)
data = pca.fit_transform(cross)
print(data)