将nxn矩阵转换为pandas datafram

2024-04-24 23:31:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv格式的n×n数据,格式如下

-   A   B   C   D
A   0   1   2   4
B   2   0   3   1
C   1   0   0   5
D   2   5   4   0
...

我想阅读它并转换成以下格式的三维熊猫数据帧:

^{pr2}$

。。。在

最好的转换方法是什么?在最坏的情况下,我将编写一个for循环来读取每一行并附加它的转置,但必须有一种更简单的方法。任何帮助都将不胜感激。在


Tags: csv数据方法for格式情况pr2
1条回答
网友
1楼 · 发布于 2024-04-24 23:31:26

使用^{}

假设你的数据帧看起来像

In [479]: df
Out[479]:
   -  A  B  C  D
0  A  0  1  2  4
1  B  2  0  3  1
2  C  1  0  0  5
3  D  2  5  4  0

In [480]: pd.melt(df, id_vars=['-'], value_vars=df.columns.values.tolist()[1:],
   .....:         var_name='Dest', value_name='Distance')
Out[480]:
    - Dest  Distance
0   A    A         0
1   B    A         2
2   C    A         1
3   D    A         2
4   A    B         1
5   B    B         0
6   C    B         0
7   D    B         5
8   A    C         2
9   B    C         3
10  C    C         0
11  D    C         4
12  A    D         4
13  B    D         1
14  C    D         5
15  D    D         0

其中df.columns.values.tolist()[1:]是剩余的列['A', 'B', 'C', 'D']

要将“-”替换为“Origin”,可以使用dataframe.rename(columns={...})

^{pr2}$

相关问题 更多 >