我是python和pandas的新用户,我正在尝试将每个列中的所有可能的数据框都变成一行。
来源(B):
我想获得的是什么:
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
...
感谢您的帮助
答案 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 ...
(我无法测试这些值,因为数据仅作为图像给出,因此无法复制)