我有一个 Pandas 数据框,说:
df = pd.DataFrame ([['a', 3, 3], ['b', 2, 5], ['c', 4, 9], ['d', 1, 43]], columns = ['col 1' , 'col2', 'col 3'])
或:
col 1 col2 col 3
0 a 3 3
1 b 2 5
2 c 4 9
3 d 1 43
如果我想按 col2 排序,我可以使用 df.sort,它将升序和降序排序。
但是,如果我想对行进行排序,使 col2 为:[4, 2, 1, 3],我该怎么做?
最佳答案
试试这个:
sortMap = {4:1, 2:2, 1:3,3:4 }
df["new"] = df2['col2'].map(sortMap)
df.sort_values('new', inplace=True)
df
col1 col2 col3 new
2 c 4 9 1
1 b 2 5 2
3 d 1 43 3
0 a 3 3 4
创建字典的alt方法:
ll = [4, 2, 1, 3]
sortMap = dict(zip(ll,range(len(ll))))
关于python - 如何使用非标准顺序对 Pandas 中的行进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38857311/