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

如何移除pandas DataFrame.str.contains返回结果的行索引

pandas打印筛选结果时隐藏行索引的解决方法

问题说明

使用pandas的str.contains()方法筛选匹配子串的行时,返回的DataFrame打印时默认会携带原始行号索引,仅需要在打印环节隐藏该索引,不需要改动DataFrame本身结构。

复现代码

import pandas as pd
df = pd.DataFrame({'Name': ['Jordan', 'Pippen', 'Rodman'], 'Number': [23, 33, 91]})
data = df[df['Name'].str.contains('Pip', case=False, regex=False)]
print(data)

实际带索引的输出

Name  Number
1  Pippen      33

期望无索引的输出

Name  Number
Pippen      33

已测试无效的方案

  • data.style.hide(axis='index')
  • data.style.hide_index()
  • data = data.reset_index(drop=True)

解决方法

普通脚本环境下直接打印时,调用DataFrame的to_string()方法,传入index=False参数即可关闭索引展示:

print(data.to_string(index=False))

执行后即可得到预期的无索引输出。

之前方案无效的原因

  1. .style相关的方法是为Jupyter Notebook/Lab这类支持富文本渲染的环境设计的,直接在普通终端用print打印Styler对象不会生效,无法触发样式渲染
  2. reset_index(drop=True)只是把原有的非连续行索引替换为从0开始的连续索引,并没有关闭索引展示,打印时还是会带出索引列,只是索引值变成了0而已。

如果是在Jupyter类富文本环境下使用,不需要套print,直接在单元格最后一行写data.style.hide(axis='index'),运行后就能渲染出不带索引的表格。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 16:18:20