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

Python中如何提取DataFrame每行大于0值对应的列名

Pandas获取每行非零值对应列名的实现方法

你可以通过pandas的逐行遍历+布尔筛选快速实现需求,具体操作如下:

  • 第一步:构造样例数据(如果已经有现成DataFrame可跳过这步)
import pandas as pd

# 构造和你样例一致的DataFrame
df = pd.DataFrame(
    data=[[0,2,3,0,2], [1,0,0,1,1], [1,0,4,0,0]],
    columns=['1922', '7', '233', '439', '662']
)
  • 第二步:执行核心处理逻辑
# 逐行筛选非零值对应的列名,拼接为逗号分隔的字符串
df['Non_zeros'] = df.apply(lambda x: ', '.join(x[x != 0].index.tolist()), axis=1)

# 输出仅含Non_zeros的结果
print(df[['Non_zeros']])
  • 结果说明:你问题里样例输出的列名数字和输入表列名不一致属于笔误,代码会严格按照实际DataFrame的列名输出正确结果,上述样例输入运行后输出为:
Non_zeros
0       7, 233, 662
1  1922, 439, 662
2       1922, 233

内容的提问来源于stack exchange,提问作者Squid Game

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:06:08