如何在不转为Styler对象的前提下移除Pandas DataFrame输出的索引
问题定位
index=False参数不属于Pandas DataFrame构造方法的入参,如果你是在pd.DataFrame()初始化时传入该参数,会被直接忽略,自然不会生效;而style.hide_index()会将原生DataFrame转换为Styler对象,无法再进行常规的DataFrame数据操作,不符合需求。
不同场景的解决方案
场景1:仅打印输出时隐藏索引,保留原DataFrame结构
如果只是需要终端打印时不展示索引,后续仍然要对DataFrame做数据处理,可使用to_string()方法生成无索引的打印字符串,不修改原DataFrame本身:
import pandas as pd def create_dataframe(k,v): a = pd.DataFrame(v, columns=k) # 仅打印时隐藏索引,不修改原DataFrame结构 print(a.to_string(index=False)) return a k = ["Employee ID", "Name", "Salary"] v = [["1446","Ashish", "80"],["1447","Priya", "70"], ["1448","Riya", "90"]] df = create_dataframe(k,v)
打印输出效果:
Employee ID Name Salary 1446 Ashish 80 1447 Priya 70 1448 Riya 90
场景2:Jupyter Notebook交互展示时隐藏索引
如果是在Notebook环境下需要渲染无索引的表格,可仅在展示环节调用Styler方法,数据处理仍使用原生DataFrame即可:
import pandas as pd from IPython.display import display def create_dataframe(k,v): return pd.DataFrame(v, columns=k) k = ["Employee ID", "Name", "Salary"] v = [["1446","Ashish", "80"],["1447","Priya", "70"], ["1448","Riya", "90"]] df = create_dataframe(k,v) # 仅展示环节隐藏索引,df仍为原生DataFrame可正常处理数据 display(df.style.hide(axis='index'))
场景3:导出文件时隐藏索引
如果需要将结果导出为CSV、Excel等文件,直接在导出方法中加入index=False参数即可:
# 导出为无索引CSV df.to_csv("员工信息表.csv", index=False) # 导出为无索引Excel df.to_excel("员工信息表.xlsx", index=False)
内容的提问来源于stack exchange,提问作者Ashish Gupta
相关产品推荐
相关产品推荐

