Python脚本中如何打印DataFrame?Jupyter外无法显示求助
在普通Python脚本中查看Pandas DataFrame的方法
你遇到的问题很常见——display()是Jupyter Notebook专属的交互式显示函数,在普通Python脚本环境里它没法像在Notebook那样渲染出美观的表格。给你几个实用的替代方案:
1. 最基础的print()方法
直接用print()输出DataFrame,虽然格式不如Jupyter精致,但能快速查看数据:
import pandas as pd def run_agg_query(db): df1 = pd.read_sql("select some query", conn) print(df1)
如果DataFrame太大导致输出被截断,可以先设置pandas的显示参数,强制显示全部行和列:
import pandas as pd # 先设置显示选项,避免截断 pd.set_option('display.max_columns', None) # 显示所有列 pd.set_option('display.max_rows', None) # 显示所有行 pd.set_option('display.width', 1000) # 调整显示宽度,避免换行 def run_agg_query(db): df1 = pd.read_sql("select some query", conn) print(df1)
2. 用to_string()自定义输出格式
如果你想更灵活控制显示细节,可以把DataFrame转成字符串后打印,比如指定列宽、是否显示索引等:
def run_agg_query(db): df1 = pd.read_sql("select some query", conn) print(df1.to_string(index=False, max_colwidth=50)) # 不显示索引,列宽设为50
3. 用第三方库输出美观表格
如果想要类似Jupyter的整洁表格,可以用tabulate库,先安装它:
pip install tabulate
然后在脚本里这样用:
import pandas as pd from tabulate import tabulate def run_agg_query(db): df1 = pd.read_sql("select some query", conn) print(tabulate(df1, headers='keys', tablefmt='grid')) # grid格式的表格,清晰易读
4. 导出到文件查看(适合测试)
如果只是测试脚本的结果,也可以把DataFrame导出到CSV或者Excel文件,直接打开查看:
def run_agg_query(db): df1 = pd.read_sql("select some query", conn) df1.to_csv('test_result.csv', index=False) # 导出到CSV,不包含索引 # 或者导出到Excel # df1.to_excel('test_result.xlsx', index=False)
内容的提问来源于stack exchange,提问作者chowpay




