python - 如何使用非标准顺序对 Pandas 中的行进行排序

标签 python sorting pandas

我有一个 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/

相关文章:

python - 如何获取箱线图中每个中位数的值?

python - 按顺序遍历两个文件中的行

r - 对数据框的行进行排序

python-3.x - Python-无法使Corr工作

python - 使用 Pandas Dataframe 在 python for 循环中保存更新的值

python - 如何在 CentOS 6.4 上安装 urwid 1.1.1?

java - 如何按字母顺序对列表列表的第一个元素进行排序?

c# - 按多个字段对集合进行排序

python - 将 Pandas 相关性转换为列

python - 如何对日期对象列表进行排序?