python - 根据正值和负值对数据框列的值进行排序?

标签 python pandas

我有一个由 +ve 和 -ve 列组成的 df 列。

       A          B
0      a           5
1      b         -13
2      c          15
3      d         -10

有没有办法将 +ve 值升序和 -ve 值降序排序

       A          B
0      a           5
1      c          15
2      d         -10
3      b         -13

最佳答案

首先使用 boolean indexing 进行过滤, 按 DataFrame.sort_values 排序最后concat一起:

mask = df['B'].gt(0)
df = pd.concat([df[mask].sort_values('B'),
                df[~mask].sort_values('B', ascending=False)], ignore_index=True)
print (df)
   A   B
0  a   5
1  c  15
2  d -10
3  b -13

关于python - 根据正值和负值对数据框列的值进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58056316/

相关文章:

python跳过for循环

python - 使用 python 从数据文件中提取选定的列

python - pandas 中字符串到日期时间的转换

python - Pandas 从列中的值查找索引

python - 总结 Pandas 数据框中所有可能的组合

python - 在 panda 数据框中创建总行

python - 为什么 Pip 会忽略已配置的具有嵌套依赖项的存储库?

python - Pandas Dataframe 合并列上的行以形成字典列表

python - 使用 JSON 文件存储和检索列表数据

python - Pandas 中单个图中的两个子图