【发布时间】:2021-04-30 21:07:37
【问题描述】:
a = [[0,0,0,0],[0,-1,1,0],[1,-1,1,0],[1,-1,1,0]]
df = pd.DataFrame(a, columns=['A','B','C','D'])
df
Output:
A B C D
0 0 0 0 0
1 0 -1 1 0
2 1 -1 1 0
3 1 -1 1 0
因此,每列垂直向下读取,列中的值都从第一行的 0 开始,一旦它们发生变化,它们就永远不会变回,并且可以变为 1 或 -1。我想重新排列数据框列,以便按此顺序排列:
- 尽可能对最早行中达到 1 的列进行排序
- 对最早行中达到 -1 的列进行排序
- 最后剩下的行从未改变过值并保持为零(如果还有剩余的话)
Desired Output:
C A B D
0 0 0 0 0
1 1 0 -1 0
2 1 1 -1 0
3 1 1 -1 0
我的主数据框是 3000 行和 61 列长,有什么方法可以快速做到这一点?
【问题讨论】:
标签: python pandas dataframe sorting multiple-columns