gpt4 book ai didi

python - 在Python中保留二进制矩阵中值的顺序

转载 作者:行者123 更新时间:2023-12-01 09:20:00 27 4
gpt4 key购买 nike

我从 2 个 pandas 列创建了一个二进制矩阵

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)

在这里,您以有序的方式保留列的元素(并且没有重复),然后将它们用作标题

关于python - 在Python中保留二进制矩阵中值的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50873572/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com