Я создал двоичную матрицу из 2 столбцов панд
df:
ID_2 ID_1
1111 1
22222 2
33333 3
33333 4
44444 5
55555 6
55555 7
66666 8
66666 9
77777 10
77777 11
77777 12
С использованием:
A = pd.get_dummies(df.set_index('ID_1')['ID_2'].astype(str)).max(level=0)
print (A)
Это создает матрицу:
22222 33333 44444 55555 66666 77777 11111
ID_2
1 0 0 0 0 0 0 1
2 1 0 0 0 0 0 0
3 0 1 0 0 0 0 0
4 0 1 0 0 0 0 0
5 0 0 1 0 0 0 0
....
все нормально - за исключением того, что первое уникальное значение из ID_1 помещается в последний столбец. Мне нужен порядок значений, которые должны быть сохранены, как в ID_2.






Если вы хотите изменить порядок столбцов, я думаю, вам понадобится это:
A = A.reindex_axis(['11111'] + list(A.columns[:-1]), axis=1)
Сделать можно так:
from collections import OrderedDict
cols = list(OrderedDict.fromkeys(list(df['ID_2'].values)))
cols = [str(i) for i in cols]
A = A.reindex_axis(cols, axis=1)
здесь вы сохраняете элементы столбца в упорядоченном виде (и без дубликатов), а затем используете их в качестве заголовка
Это было бы хорошим решением, но когда дело доходит до наличия нескольких наборов данных, было бы хорошо, если бы было что-то подобное, которое автоматизировало бы переупорядочение. Или форсируйте заказ с самого начала.
похоже, ваш код работает нормально. какую версию панд вы используете?