首页 > 解决方案 > 从参考表生成动态矩阵

问题描述

我有以下参考

corr = pd.DataFrame({'i':['a','b'],'a':[.1,.2],'b':[.2,.1]}).set_index('i')

在此处输入图像描述

我也有一些向量值。长度总是会改变,所以我只使用 6 来展示我想要实现的目标。

vectors = pd.DataFrame({'val':['a','b','a','a','b']})

我想使用这些值来生成一个 5x5 矩阵“X”,这样:

在此处输入图像描述

5x5 因为向量 len(vector) = 5

我能想到的最接近的是 map 函数,它只生成一列。

标签: pythonpandasnumpymatrix

解决方案


DataFrame.reindex两次,一次用于列,一次用于行:

out = corr.reindex(vectors['val']).reindex(vectors['val'], axis=1)

请注意,虽然受支持,但不建议使用重复的列名。例如out['a']会返回一个数据框,而大多数情况下它会返回一个系列。


推荐阅读