![Pandas数据分析快速上手500招(微课视频版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/35/47216035/b_47216035.jpg)
上QQ阅读APP看书,第一时间看更新
023 根据DataFrame创建笛卡儿积多层索引
此案例主要演示了使用MultiIndex.from_product()函数根据DataFrame的多列数据创建笛卡儿积风格的多层索引的DataFrame。笛卡儿积简述如下:两个集合A与B的笛卡儿积就是A的所有元素乘以B的所有元素的集合。当在Jupyter Notebook中运行此案例代码之后,根据如图023-1所示的DataFrame创建的笛卡儿积风格的多层索引的DataFrame的效果如图023-2所示。
![](https://epubservercos.yuewen.com/DC5573/26580753209033106/epubprivate/OEBPS/Images/Figure-P40_2741.jpg?sign=1739261886-dyZz9WqpdQNrJ0D0aeWYtFfljzDsUyDL-0-22ea19193e147d26985ba144a3f0140c)
图023-1
![](https://epubservercos.yuewen.com/DC5573/26580753209033106/epubprivate/OEBPS/Images/Figure-P40_2742.jpg?sign=1739261886-MlHhTMUzSfb8fYThCtjj3KNF8MP5RF63-0-1645f77658f03c3a90cc158e994fc144)
图023-2
主要代码如下。
![](https://epubservercos.yuewen.com/DC5573/26580753209033106/epubprivate/OEBPS/Images/Figure-P40_2743.jpg?sign=1739261886-COot5T8Jf5cMQgSu0KZ5FBMbWfLC7qI9-0-b03fa6c17f41434f2f58ae02d4ca8e44)
在上面这段代码中,pd.MultiIndex.from_product([df.机构名称, df.行业, df.操作策略], names=df.columns).to_frame().loc[lambda x:x.apply(lambda s: s.notna().all(),axis=1)].astype(str).agg(sum,axis=1).to_frame('详细名单')表示根据df的3列数据创建笛卡儿积样式的多层索引的DataFrame。
此案例的主要源文件是MyCode\H541\H541.ipynb。