大家好,我有以下数据框:
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 排序,同时仍保持它们的顺序?
最佳答案
看来你需要:
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
关于python - 按 groupby 对列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45622039/