如何获取DataFrame列中大于0的值的索引?
解决方法
优先推荐:矢量化操作(高效简洁)
Pandas 原生支持矢量化筛选,无需手动循环,效率远高于逐行遍历:
# 替换 df 为你的DataFrame名称,column_name 为目标列名 # 获取符合条件的索引对象 valid_indices = df[df['column_name'] > 0].index # 若需要转为列表格式 valid_indices_list = valid_indices.tolist()
备选:query方法(语法更直观)
如果偏好接近自然语言的写法,可用query:
valid_indices = df.query('column_name > 0').index
仅当特殊需求时使用:逐行遍历(不推荐,效率低)
如果必须手动遍历每一行,可使用iterrows,但数据量大时不建议:
valid_indices = [] for idx, row in df.iterrows(): if row['column_name'] > 0: valid_indices.append(idx)
内容的提问来源于stack exchange,提问作者Robert Krämer
相关产品推荐
相关产品推荐

