将numpy数组复制到Panda multiindex(相同大小)

时间:2021-10-25 21:23:19

I have two matrix: numpy square matrix and a panda multiindexed square matrix. They are the same size. The idea is to get the value from numpy into the multiindex panda matrix to navigate more easily into the data.

我有两个矩阵:numpy square matrix和panda multiindexed square matrix。它们的大小相同。我们的想法是将numpy的值从多指数熊猫矩阵中获取,以便更轻松地导入数据。

My matrix are around 100 000 x 100 000. And my panda matrix has three level of index.

我的矩阵大约是10万x 10万。我的熊猫矩阵有三个指标水平。

tuples = [('1','A','a'), ('1','A','b'), ('1','A','c'), ('1','B','a'), ('1','B','b'), ('1','B','c'), ('2','A','a'), ('2','A','b'), ('2','B','a')]
index = pd.MultiIndex.from_tuples(tuples, names=['geography', 'product','activity'])
df = pd.DataFrame(index=index, columns=index)

geography                   1                 2      
product                     A        B        A     B
activity                    a  b  c  a  b  c  a  b  a
geography product activity                           
1         A       a         0  0  0  0  0  0  0  0  0
                  b         0  0  0  0  0  0  0  0  0
                  c         0  0  0  0  0  0  0  0  0
          B       a         0  0  0  0  0  0  0  0  0
                  b         0  0  0  0  0  0  0  0  0
                  c         0  0  0  0  0  0  0  0  0
2         A       a         0  0  0  0  0  0  0  0  0
                  b         0  0  0  0  0  0  0  0  0
          B       a         0  0  0  0  0  0  0  0  0

np.random.rand(9,9)
array([[ 0.27302806,  0.33926193,  0.01489047,  0.71959889,  0.43500806,
         0.03607795,  0.03747561,  0.43000199,  0.8091691 ],
       [ 0.96626878,  0.37613022,  0.7739084 ,  0.16724657,  0.01144436,
         0.0107722 ,  0.73513494,  0.13305542,  0.2910334 ],
       [ 0.00622779,  0.93699165,  0.62725798,  0.25009469,  0.14010666,
         0.61826728,  0.72060106,  0.58864557,  0.29375779],
       [ 0.14937979,  0.45269751,  0.68450964,  0.15986812,  0.69879559,
         0.06573519,  0.57504452,  0.49540882,  0.77283616],
       [ 0.60933817,  0.2701683 ,  0.69067959,  0.22806386,  0.79456502,
         0.75107457,  0.2805325 ,  0.27659171,  0.33446821],
       [ 0.82860687,  0.27055835,  0.37684942,  0.18962783,  0.59885119,
         0.31246936,  0.94522335,  0.53487273,  0.00611481],
       [ 0.27683582,  0.23653112,  0.41250374,  0.5024068 ,  0.27621212,
         0.81379001,  0.6704781 ,  0.87521485,  0.04577144],
       [ 0.95516958,  0.21844023,  0.86558273,  0.52300142,  0.91328259,
         0.7587479 ,  0.15201837,  0.15376074,  0.12092142],
       [ 0.36835891,  0.0381736 ,  0.36473176,  0.30510363,  0.19433639,
         0.43431018,  0.00112607,  0.35334684,  0.82307449]])

How I can put the value of the numpy matrix into in the panda multiindex matrix. The two matrix by construction have the same structure, i.e. the numpy matrix is the panda one without label indexes.

如何将numpy矩阵的值放入熊猫多索引矩阵中。通过构造的两个矩阵具有相同的结构,即numpy矩阵是没有标签索引的熊猫矩阵。

I found a dozen of examples to transform multiindex df into numpy array, but not in this way. Only one example of a 3 dimensional numpy array, but mine is not a 3-d np array.

我找到了十几个将multiindex df转换为numpy数组的例子,但不是这样的。只有三维numpy数组的一个例子,但我的不是3-d np数组。

1 个解决方案

#1


1  

Thanks to Divakar. Something, just df[:] = np.random.rand(9,9) and it is all right.

感谢Divakar。东西,只是df [:] = np.random.rand(9,9),没关系。

#1


1  

Thanks to Divakar. Something, just df[:] = np.random.rand(9,9) and it is all right.

感谢Divakar。东西,只是df [:] = np.random.rand(9,9),没关系。