pandas 中的 dataframe 或 numpy 中的 array,排序时都要指定列名称才可以,比如
dt = np.dtype([('name','S10'),('age',int)])
a = np.array([("raju",21),("anil",25),("ravi",17),("amar",27)],dtype = dt)
print (np.sort(a, order = 'name'))
frame=pd.DataFrame([[2,4,1,5],[3,1,4,5],[5,1,4,2]],columns=['b','a','d','c'],index=['one','two','three'])
print (frame.sort_values(by=['a','c']))
但是取得的数据是否都有列名称不确定,想指定按照第 N 列 /行来排序,如果没有列名称的情况下怎么排序???
拿上列中的 frame 来说,三行四列的数据,要按第 3 列排序(不使用列名称)如何实现呢?
1
Procumbens 2020-03-14 07:45:12 +08:00 1
frame.sort_values(by=frame.columns[2])
|
2
faketemp OP @Procumbens 测试了一下 果然奏效 谢谢
之前测试时 frame.columns[2] 返回的是对应列名称,没想到对于默认没有 columns 和 index 的数据 pandas 会自动生成连续数字编号作为默认 columns 和 index ——这样直接使用 frame.columns[N-1] 就可以按第 N 列排序了 |