#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