我一直在努力对我的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'等属性。所以你不想分别对名称和年龄进行排序,以便人们可以姓名和年龄不匹配。








暂无数据