如何在python数据框架中重新排列具有多列的行



我有以下数据集:

Name Year  Date Value
x    year1 date1 v1
x    year1 date2 v2
x    year1 date3 v3
x    year2 date1 v4
x    year2 date2 v5
x    year2 date3 v6
z    year1 date1 v7
z    year1 date2 v8
z    year1 date3 v9
z    year2 date1 v10
z    year2 date2 v11
z    year2 date3 v12
y    year1 date1 v13
y    year1 date2 v14
y    year1 date3 v15
y    year2 date1 v16
y    year2 date2 v17
y    year2 date3 v18

我想要以下数据集输出:

Name Year  Date Value
x    year1 date1 v1
x    year2 date1 v4
x    year1 date2 v2
x    year2 date2 v5
x    year1 date3 v3
x    year2 date3 v6
z    year1 date1 v7
z    year2 date1 v10
z    year1 date2 v8
z    year2 date2 v11
z    year1 date3 v9
z    year2 date3 v12
y    year1 date1 v13
y    year2 date1 v16
y    year1 date2 v14
y    year2 date2 v17
y    year1 date3 v15
y    year2 date3 v18

我尝试了以下代码,但我的"Name"列也在排序x,y,z。我想要"名称"列以保持x, z, y:df.sort_values(['Name', 'Date'])

根据我的理解,您希望数据首先由Name排序,然后由Date排序。

,你可以试试:

df.sort_values(by = ['Name', 'Date'], ascending = [True, True])

使用说明:

df.sort_values(['Name', 'Date'])

输出:

Name    Year    Date    Value
0   x   year1   date1   v1
3   x   year2   date1   v4
1   x   year1   date2   v2
4   x   year2   date2   v5
2   x   year1   date3   v3
5   x   year2   date3   v6
6   y   year1   date1   v7
9   y   year2   date1   v10
7   y   year1   date2   v8
10  y   year2   date2   v11
8   y   year1   date3   v9
11  y   year2   date3   v12

最新更新