大家好我有以下数据框:
a LC_REF
5 Warranty Tsunami 1C17
6 10.1 1C17
7 5.2 1C17
...
5 Warranty Medium 1C17
6 9.1 1C17
7 6.3 1C17
...
5 Warranty Medium 2C17
6 4.2 2C17
7 3.1 2C17
...
5 Warranty High 2C17
6 2.1 2C17
7 0.5 2C17
我正在尝试按LC_REF对它们进行排序,同时保持索引顺序:
a LC_REF
5 Warranty Medium 2C17
6 4.2 2C17
7 3.1 2C17
...
5 Warranty High 2C17
6 2.1 2C17
7 0.5 2C17
...
5 Warranty Tsunami 1C17
6 10.1 1C17
7 5.2 1C17
...
5 Warranty Medium 1C17
6 9.1 1C17
7 6.3 1C17
然而,当我尝试:
df.sort_values('LC_REF')
我得到一个非常无序的数据帧。有没有办法按LC_REF排序,同时仍保持它们的顺序?
答案 0 :(得分:1)
似乎你需要:
df.sort_values(['LC_REF'], ascending=False)
更一般的解决方案 - 首先是原始索引值的reset_index和原始订单的第二个reset_index,然后按2列排序:
df = df.reset_index()
.reset_index()
.sort_values(['LC_REF', 'level_0'], ascending=[False, True])
.set_index('index')
.drop('level_0', 1)
print (df)
a LC_REF
index
5 Warranty Medium 2C17
6 4.2 2C17
7 3.1 2C17
5 Warranty High 2C17
6 2.1 2C17
7 0.5 2C17
5 Warranty Tsunami 1C17
6 10.1 1C17
7 5.2 1C17
5 Warranty Medium 1C17
6 9.1 1C17
7 6.3 1C17