Python Pandas DataFrame 表格 打印输出不能对齐的两种解决方案

最近在学数据分析,中英文混合的DataFrame表格会出现print()打印无法对齐的情况,导致输出的结果都没有对齐,十分不美观,也影响直观的分析。下面介绍两种解决方案,总有一款适合你:

准备工作:为演示方便,通过导入excel的方式建立名为’stu’, ‘stu2’ 的两个DataFrame格式对象

import pandas as pd
stu = pd.read_excel('Data\studentsInfo.xlsx','Group1',index_col=0)
stu.dropna(inplace=True)
stu2 = pd.read_excel('Data\studentsInfo.xlsx','Group1',index_col=0)

1.适用于纯文本输出print()函数的设置方法

若在IDLE等纯文本输出的环境下,使用display()函数或print()函数都只能输出纯文本形式的表格,如下:

在这里插入图片描述
由于中英文混合的关系导致列没有对齐


通过pd.set_option进行设置,代码如下:

pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
pd.set_option('display.width', 180) # 设置打印宽度(**重要**)
print(stu)

输出如下:
在这里插入图片描述

注意:如果打印宽度设置过小或保持默认,则有可能出现表格的列被强制换行的情形:
在这里插入图片描述


2.适用于JupyterNotebook的格式化的表格输出

若在JupyterNotebook中直接输出DataFrame格式,则是有线框的HTML格式的表格
代码如下:(以下代码均是JupyterNotebook的cell中运行的)

stu

输出如下:(是一个HTML格式的表格)

性别 年龄 身高 体重 省份 成绩 月生活费 课程兴趣 案例教学
序号
2 male 22.0 180 71.0 GuangXi 77.0 1300.0 3 4
4 male 20.0 177 72.0 LiaoNing 79.0 900.0 4 4
6 male 20.0 179 75.0 YunNan 92.0 950.0 5 5
7 female 21.0 166 53.0 LiaoNing 80.0 1200.0 4 5
8 female 20.0 162 47.0 AnHui 78.0 1000.0 4 4
9 female 20.0 162 47.0 AnHui 78.0 1000.0 4 4
10 male 19.0 169 76.0 HeiLongJiang 88.0 1100.0 5 5

但是这种方式无法同时在一个cell中显示两个表格,只显示最后一个表格
代码如下:

stu
stu2

输出如下:

性别 年龄 身高 体重 省份 成绩 月生活费 课程兴趣 案例教学
序号
1 male 20.0 170 70.0 LiaoNing NaN 800.0 5 4
2 male 22.0 180 71.0 GuangXi 77.0 1300.0 3 4
3 male NaN 180 62.0 FuJian 57.0 1000.0 2 4
4 male 20.0 177 72.0 LiaoNing 79.0 900.0 4 4
5 male 20.0 172 NaN ShanDong 91.0 NaN 5 5
6 male 20.0 179 75.0 YunNan 92.0 950.0 5 5
7 female 21.0 166 53.0 LiaoNing 80.0 1200.0 4 5
8 female 20.0 162 47.0 AnHui 78.0 1000.0 4 4
9 female 20.0 162 47.0 AnHui 78.0 1000.0 4 4
10 male 19.0 169 76.0 HeiLongJiang 88.0 1100.0 5 5

为了在一个cell 输出多个表格,可以使用IPython.display,代码如下:

from IPython.display import display
display(stu)
display(stu2)

输出如下:

性别 年龄 身高 体重 省份 成绩 月生活费 课程兴趣 案例教学
序号
2 male 22.0 180 71.0 GuangXi 77.0 1300.0 3 4
4 male 20.0 177 72.0 LiaoNing 79.0 900.0 4 4
6 male 20.0 179 75.0 YunNan 92.0 950.0 5 5
7 female 21.0 166 53.0 LiaoNing 80.0 1200.0 4 5
8 female 20.0 162 47.0 AnHui 78.0 1000.0 4 4
9 female 20.0 162 47.0 AnHui 78.0 1000.0 4 4
10 male 19.0 169 76.0 HeiLongJiang 88.0 1100.0 5 5
性别 年龄 身高 体重 省份 成绩 月生活费 课程兴趣 案例教学
序号
1 male 20.0 170 70.0 LiaoNing NaN 800.0 5 4
2 male 22.0 180 71.0 GuangXi 77.0 1300.0 3 4
3 male NaN 180 62.0 FuJian 57.0 1000.0 2 4
4 male 20.0 177 72.0 LiaoNing 79.0 900.0 4 4
5 male 20.0 172 NaN ShanDong 91.0 NaN 5 5
6 male 20.0 179 75.0 YunNan 92.0 950.0 5 5
7 female 21.0 166 53.0 LiaoNing 80.0 1200.0 4 5
8 female 20.0 162 47.0 AnHui 78.0 1000.0 4 4
9 female 20.0 162 47.0 AnHui 78.0 1000.0 4 4
10 male 19.0 169 76.0 HeiLongJiang 88.0 1100.0 5 5

觉得有用的话,不要吝惜评论点赞分享哦,希望大家多多包涵,有任何问题欢迎指正、讨论。

发布了12 篇原创文章 · 获赞 5 · 访问量 2445

猜你喜欢

转载自blog.csdn.net/qq_27133869/article/details/103709805
今日推荐