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

如何从含单行datetime索引的Pandas DataFrame筛选值为True的列名列表

高效获取DataFrame中值为True的列名列表

嘿,我来给你个比循环写法更简洁的Pandas原生解法,处理这种单行的DataFrame特别顺手!

假设你的这个单行DataFrame变量名叫df,直接用下面一行代码就能搞定:

fruit_list = df.columns[df.iloc[0]].tolist()

我拆解下这个操作的逻辑:

  • df.iloc[0]:取出DataFrame里唯一的那一行,得到一个Pandas Series对象
  • 用这个Series作为布尔索引,去筛选df.columns里对应值为True的列名
  • 最后用.tolist()把筛选后的列名转换成普通列表,就能得到你想要的['Apple', 'Orange', 'Pear']啦

如果以后你的DataFrame可能不止一行,想要获取所有行中至少出现过一次True的列名,也可以用这个通用写法:

fruit_list = df.columns[df.any(axis=0)].tolist()

这里df.any(axis=0)会检查每一列是否存在至少一个True,再用这个结果去筛选列名,适用性更广。

相比循环的写法,Pandas的向量化操作不仅代码更简洁,在数据量变大的时候运行效率也会更高哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:52:43