热线电话:13121318867

登录
2019-02-18 阅读量: 773
Pandas独立排序多个列

我一直在努力对我的df的整个列进行排序,但是,我的代码似乎仅适用于第一列('Name')并根据第一列对其余列进行洗牌,如下所示:

Index Name Age Education Country

0 W 2 BS C

1 V 1 PhD F

2 R 9 MA A

3 A 8 MA A

4 D 7 PhD B

5 C 4 BS C

df.sort_values(by=['Name', 'Age', 'Education', 'Country'],ascending=[True,True, True, True])

这是我希望得到的:

Index Name Age Education Country

0 A 1 BS A

1 C 2 BS A

2 D 4 MA B

3 R 7 MA C

4 V 8 PhD C

5 W 9 PhD F

相反,我得到以下内容:

Index Name Age Education Country

3 A 8 MA A

5 C 4 BS C

4 D 7 PhD B

2 R 9 MA A

1 V 1 PhD F

0 W 2 BS C

解决办法:

代码按名称排序,然后是年龄,然后是国家/地区等。

为了得到你想要的东西,你可以做到

df[‘name’]=sorted(df[‘name’])

逐列排序。

但你确定这是你想做的吗?DataFrame的设计使得每一行对应一个条目,例如一个人,而列对应于'name'和'age'等属性。所以你不想分别对名称和年龄进行排序,以便人们可以姓名和年龄不匹配。

25.7508
4
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子