解決Python?Pandas?DataFrame表格打印輸出不能對齊的問題
最近在學(xué)數(shù)據(jù)分析,中英文混合的DataFrame表格會出現(xiàn)print()打印無法對齊的情況,導(dǎo)致輸出的結(jié)果都沒有對齊,十分不美觀,也影響直觀的分析。
下面介紹兩種解決方案,總有一款適合你:
準(zhǔn)備工作:
為演示方便,通過導(dǎo)入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()函數(shù)的設(shè)置方法
若在IDLE等純文本輸出的環(huán)境下,使用display()函數(shù)或print()函數(shù)都只能輸出純文本形式的表格,
如下:

由于中英文混合的關(guān)系導(dǎo)致列沒有對齊
通過pd.set_option進行設(shè)置,
代碼如下:
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
pd.set_option('display.width', 180) # 設(shè)置打印寬度(**重要**)
print(stu)輸出如下:

注意:如果打印寬度設(shè)置過小或保持默認(rèn),則有可能出現(xiàn)表格的列被強制換行的情形:

2.適用于JupyterNotebook的格式化的表格輸出
若在JupyterNotebook中直接輸出DataFrame格式,則是有線框的HTML格式的表格
代碼如下:(以下代碼均是JupyterNotebook的cell中運行的)
stu
輸出如下:(是一個HTML格式的表格)
| 性別 | 年齡 | 身高 | 體重 | 省份 | 成績 | 月生活費 | 課程興趣 | 案例教學(xué) | |
|---|---|---|---|---|---|---|---|---|---|
| 序號 | |||||||||
| 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中顯示兩個表格,只顯示最后一個表格
代碼如下:
stustu2
輸出如下:
| 性別 | 年齡 | 身高 | 體重 | 省份 | 成績 | 月生活費 | 課程興趣 | 案例教學(xué) | |
|---|---|---|---|---|---|---|---|---|---|
| 序號 | |||||||||
| 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)
輸出如下:
| 性別 | 年齡 | 身高 | 體重 | 省份 | 成績 | 月生活費 | 課程興趣 | 案例教學(xué) | |
|---|---|---|---|---|---|---|---|---|---|
| 序號 | |||||||||
| 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 |
| 性別 | 年齡 | 身高 | 體重 | 省份 | 成績 | 月生活費 | 課程興趣 | 案例教學(xué) | |
|---|---|---|---|---|---|---|---|---|---|
| 序號 | |||||||||
| 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 |
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Django Admin中增加導(dǎo)出Excel功能過程解析
這篇文章主要介紹了Django Admin中增加導(dǎo)出Excel功能過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09
Pytorch深度學(xué)習(xí)addmm()和addmm_()函數(shù)用法解析
這篇文章主要為大家介紹了Pytorch中addmm()和addmm_()函數(shù)用法解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06
Python實現(xiàn)批量采集商品數(shù)據(jù)的示例詳解
這篇文章主要為大家詳細介紹了如何利用Python實現(xiàn)批量采集商品的數(shù)據(jù),文中的示例代碼講解詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
Python使用dict.fromkeys()快速生成一個字典示例
這篇文章主要介紹了Python使用dict.fromkeys()快速生成一個字典,結(jié)合實例形式分析了Python基于dict.fromkeys()生成字典的相關(guān)操作技巧,需要的朋友可以參考下2019-04-04

