You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python按非零条目数量对DataFrame列进行排序

问题描述

现有如下结构的DataFrame:

abcde
a_1b_1c_1d_1e_1
0b_2c_2d_2e_2
0b_3c_30e_3
00c_40e_4
0000e_5

需要处理为以下结构,列顺序调整为e、c、b、d、a,非0值保持原有内容不变:

ecbda
e_1c_1b_1d_1a_1
e_2c_2b_2d_20
e_3c_3b_300
e_4c_4000
e_50000
解决方案

你只需要按照目标列顺序重新选取DataFrame的列即可实现需求,示例代码如下:

import pandas as pd

# 构造示例DataFrame,可替换为自己的数据源
data = {
    'a': ['a_1', 0, 0, 0, 0],
    'b': ['b_1', 'b_2', 'b_3', 0, 0],
    'c': ['c_1', 'c_2', 'c_3', 'c_4', 0],
    'd': ['d_1', 'd_2', 0, 0, 0],
    'e': ['e_1', 'e_2', 'e_3', 'e_4', 'e_5']
}
df = pd.DataFrame(data)

# 按目标顺序重新选择列,直接得到结果
df_result = df[['e', 'c', 'b', 'd', 'a']]

# 输出验证结果
print(df_result)

如果你的原始数据中0是字符串类型的'0',上述方法也可以正常生效,不需要额外修改。

内容的提问来源于stack exchange,提问作者Ba Lalo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 01:06:02