我有一个df
,
param per per_date per_num
0 XYZ 1.0 2018-10-01 11.0
1 XYZ 2.0 2017-08-01 15.25
2 XYZ 1.0 2019-10-01 11.25
3 XYZ 2.0 2019-08-01 15.71
4 XYZ 3.0 2020-10-01 NaN
5 MMG 1.0 2021-10-01 12.50
6 MMG 2.0 2021-10-01 11.75
7 MMG 3.0 2011-01-01 NaN
8 ZZZ 4.0 2023-01-01 19.00
9 ZZZ 3.0 2014-01-01 13.00
10 MMM 1.0 2016-03-01 12.01
11 MMM 2.0 2019-01-01 16.00
12 ZZZ 1.0 2009-06-01 12.50
13 ZZZ 2.0 2018-01-01 19.00
我需要这样的输出
param per per_date per_num
0 MMG 1.0 2021-10-01 12.50
1 MMG 2.0 2021-10-01 11.75
2 MMG 3.0 2011-01-01 NaN
3 MMM 1.0 2016-03-01 12.01
4 MMM 2.0 2019-01-01 16.00
5 XYZ 1.0 2018-10-01 11.0
6 XYZ 2.0 2017-08-01 15.25
7 XYZ 1.0 2019-10-01 11.25
8 XYZ 2.0 2019-08-01 15.71
9 XYZ 3.0 2020-10-01 NaN
10 ZZZ 1.0 2009-06-01 12.50
11 ZZZ 2.0 2018-01-01 19.00
12 ZZZ 4.0 2023-01-01 19.00
13 ZZZ 3.0 2014-01-01 13.00
但是,当我进行排序时,
df= df.sort_values(['param','per']).reset_index(drop=True)
df
我明白了,(不是我想要的)
param per per_date per_num
0 MMG 1.0 2021-10-01 12.50
1 MMG 2.0 2021-10-01 11.75
2 MMG 3.0 2011-01-01 NaN
3 MMM 1.0 2016-03-01 12.01
4 MMM 2.0 2019-01-01 16.00
5 XYZ 1.0 2018-10-01 11.00
6 XYZ 1.0 2019-10-01 11.25
7 XYZ 2.0 2017-08-01 15.25
8 XYZ 2.0 2019-08-01 15.71
9 XYZ 3.0 2020-10-01 NaN
10 ZZZ 1.0 2009-06-01 12.50
11 ZZZ 2.0 2018-01-01 19.00
12 ZZZ 3.0 2014-01-01 13.00
13 ZZZ 4.0 2023-01-01 19.00
如果您在上方看到的原始df
xyz
的{{1}}值为1,2,然后以1,2,3开头,则它们是两个不同的类别。我想保持原样。但是,per
都是一种顺序,因此是一个类别,但是顺序不相同,因此需要排序。如何在熊猫中做到这一点?
赞赏任何建议。