Изменить порядок имен столбцов в соответствии с именами строк в pandas

#python-3.x #pandas

#python-3.x #pandas

Вопрос:

Здравствуйте, у меня есть такой df, как :

         A       B       C       D       F
B  0.9326  0.0000  0.4410  0.6526  0.0000
C  1.0158  0.0000  0.0000  0.0000  0.0000
D  1.1740  0.0000  0.5257  0.0000  0.0000
E  1.5009  1.4384  1.2305  1.3852  0.0313
F  1.4572  1.4342  1.1664  1.3243  0.0000

d={'A': {'B': 0.9326, 'C': 1.0158, 'D': 1.174, 'E': 1.5009, 'F': 1.4572}, 'B': {'B': 0.0, 'C': 0.0, 'D': 0.0, 'E': 1.4384, 'F': 1.4342}, 'C': {'B': 0.441, 'C': 0.0, 'D': 0.5257, 'E': 1.2305, 'F': 1.1664}, 'D': {'B': 0.6526, 'C': 0.0, 'D': 0.0, 'E': 1.3852, 'F': 1.3243}, 'F': {'B': 0.0, 'C': 0.0, 'D': 0.0, 'E': 0.0313, 'F': 0.0}}

df= pd.DataFrame.from_dict(d)
 

и я хотел бы изменить порядок столбцов, как в порядке имен строк, и получить :

         B       C       D       E       F
B  
C  
D  
E  
F  
 

Конечно, тогда мы должны были бы иметь значения 0.000 по всей диагонали, если бы я заполнил ожидаемый результат exemple.

У кого-нибудь есть идея?

Ответ №1:

Это reindex :

 df.reindex(df.index, axis=1)
 

Вывод:

         B       C       D   E       F
B  0.0000  0.4410  0.6526 NaN  0.0000
C  0.0000  0.0000  0.0000 NaN  0.0000
D  0.0000  0.5257  0.0000 NaN  0.0000
E  1.4384  1.2305  1.3852 NaN  0.0313
F  1.4342  1.1664  1.3243 NaN  0.0000