熊猫数据框数组

时间:2020-05-21 07:49:17

标签: python arrays pandas

我是python和pandas的新用户,我正在尝试将每个列中的所有可能的数据框都变成一行。

来源(B):

Matrix of probabilities

我想获得的是什么:

0-0     0-1     0-2      0-3     0-4      0-5     1-0     1-1 ..
3.87    1.79    3.5      2.2     1.04     0.39   2.09     9.48 ...

我尝试从循环开始,但被阻止在其中:

for i in range(6):
    for j in range(6):
       [print(i,"-",j,"-",B[i,j])]

结果:

0 - 0 - 3.8781975861094464
0 - 1 - 2.0950303215526334
0 - 2 - 4.089533696073365
...

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

您需要缩进-即,向右移动-第二个循环。像这样:

for i in range(6):
   for j in range(6):
      [print(i,"-",j,"-",B[i,j])]

否则,第一个for循环将不起作用。 我希望这会有所帮助。

答案 1 :(得分:0)

IIUC,您想构建一个单行数据帧,其中列为'i-j',其中i和j为矩阵B中的索引,值为B[i,j]

我将分别计算列名和值:

columns = [f'{i}-{j}' for i in range(6) for j in range(6)]
values = pd.concat([df[i] for i in df.columns]).values
result = pd.DataFrame([values], columns=columns)

它应该给出:

      0-0     0-1    0-2      0-3      0-4      0-5    1-0  ...  
0    3.87    1.79    3.5      2.2     1.04     0.39   2.09  ...

(我无法测试这些值,因为数据仅作为图像给出,因此无法复制)