7個(gè)有用的Pandas顯示選項(xiàng)分享
Pandas是一個(gè)在數(shù)據(jù)科學(xué)中常用的功能強(qiáng)大的Python庫。它可以從各種來源加載和操作數(shù)據(jù)集。當(dāng)使用Pandas時(shí),默認(rèn)選項(xiàng)就已經(jīng)適合大多數(shù)人了。但是在某些情況下,我們可能希望更改所顯示內(nèi)容的格式。所以就需要使用Pandas的一些定制功能來幫助我們自定義內(nèi)容的顯示方式。
1、控制顯示的行數(shù)
在查看數(shù)據(jù)時(shí),我們希望看到比默認(rèn)行數(shù)更多或更少的行數(shù)(默認(rèn)行數(shù)為10)。
arr_data = np.random.default_rng().uniform(0, 100, size=(100,5)) pd.DataFrame(arr_data, columns=list('ABCDE'))
可以看到,默認(rèn)包括數(shù)據(jù)幀的前5行和后5行。因?yàn)檫@樣可以防止pandas在調(diào)用數(shù)據(jù)框架時(shí)顯示大量的數(shù)據(jù),從而降低計(jì)算機(jī)的速度。
這里有兩個(gè)選項(xiàng)可用于控制顯示的行數(shù)。
首先是display.max_rows,它控制在截?cái)嘀帮@示的最大行數(shù)。如果數(shù)據(jù)中的行數(shù)超過此值,則顯示將被截?cái)?。默認(rèn)設(shè)置為60。
如果希望顯示所有行,則需要將display.max_rows設(shè)置為None。如果數(shù)據(jù)非常大,這可能會(huì)占用很多資源并且降低計(jì)算速度。
pd.set_option('display.max_rows', None)
這樣就可以看到df中的所有行。
如果數(shù)據(jù)的行數(shù)多于 max_rows 設(shè)置的行數(shù),則必須將 display.min_rows 參數(shù)更改為要顯示的值。還需要確保 max_rows 參數(shù)大于 min_rows。
pd.set_option('display.min_rows', 20)
如果將min_rows設(shè)置為20,那么當(dāng)查看時(shí),將看到頂部有10行,底部有10行。
2、控制顯示的列數(shù)
當(dāng)處理包含大量列的數(shù)據(jù)集時(shí),pandas將截?cái)囡@示,默認(rèn)顯示20列。下圖第9列和第15列之間的三個(gè)點(diǎn)(省略號(hào))表示已經(jīng)被截?cái)嗔?/p>
上述數(shù)據(jù),是使用以下代碼顯示的:
arr_data = np.random.default_rng().uniform(0, 100, size=(100,25)) df = pd.DataFrame(arr_data) df
要查看顯示上的更多列,可以更改display.max_columns參數(shù)
pd.set_option('display.max_columns', 30)
這樣做最多將顯示30列。但是這可能會(huì)導(dǎo)致其他問題,例如當(dāng)有圖片時(shí)這會(huì)變得很難看。
3、禁止科學(xué)記數(shù)法
通常在處理科學(xué)數(shù)據(jù)時(shí),你會(huì)遇到非常大的數(shù)字。一旦這些數(shù)字達(dá)到數(shù)百萬,Pandas就會(huì)將它們重新格式化為科學(xué)符號(hào),這可能很有幫助,但并不總是如此。
要生成具有非常大值的數(shù)據(jù),可以使用以下代碼。
arr_data = np.random.default_rng().uniform(0, 10000000, size=(10,3)) df = pd.DataFrame(arr_data) df
如果想要顯示這些數(shù)字的完整形式而不使用科學(xué)符號(hào)。這可以通過更改float_format顯示選項(xiàng)并傳入一個(gè)lambda函數(shù)來實(shí)現(xiàn)。這將重新格式化顯示,使其具有不帶科學(xué)記數(shù)法的值和最多保留小數(shù)點(diǎn)后3位。
pd.set_option('display.float_format', lambda x: f'{x:.3f}')
如果你想讓它看起來更好看,你可以在千位之間添加逗號(hào)分隔符。
下面的代碼可能看起來與上面的相同,但是如果您仔細(xì)查看該代碼的f'{x:部分后面有一個(gè)逗號(hào)。
pd.set_option('display.float_format', lambda x: f'{x:,.3f}')
4、更改數(shù)據(jù)的浮點(diǎn)精度
在某些情況下,數(shù)據(jù)可能在小數(shù)點(diǎn)后有太多的值,這樣看起來很亂。默認(rèn)情況下,Pandas將在小數(shù)點(diǎn)后顯示6個(gè)位。
為了使它更容易閱讀,可以通過調(diào)用display.precision來減少顯示的值的數(shù)量。
pd.set_option('display.precision', 2)
數(shù)值列的浮點(diǎn)精度已降低到2。
此設(shè)置只更改數(shù)據(jù)的顯示方式。它不更改底層數(shù)據(jù)值。
5、控制Float格式
在某些情況下,數(shù)字可以代表百分比或貨幣價(jià)值。如果是這種情況,用正確的單位來格式化它們是很方便的。
若要在列后面添加百分比符號(hào),可以調(diào)用display.float_format選項(xiàng),并使用f-string傳入想要顯示的格式:
pd.set_option('display.float_format', f'{:,.3f}%')
要以美元符號(hào)開始,可以這樣更改代碼:
pd.set_option('display.float_format', f'${:,.2f}')
6、更改默認(rèn)的Pandas繪圖庫
在進(jìn)行探索性數(shù)據(jù)分析時(shí),通常需要快速生成數(shù)據(jù)圖。可以使用matplotlib來構(gòu)建一個(gè)plot,但是在Pandas中可以使用.plot()方法使用幾行代碼來完成它。
Pandas為我們提供了一系列可以使用的繪圖庫:
- matplotlib
- hvplot >= 0.5.1
- holoviews
- pandas_bokeh
- plotly >= 4.8
- altair
要更改當(dāng)前的默認(rèn)繪圖庫,需要更改plotting.backend選項(xiàng)。
pd.options.plotting.backend = "hvplot"
這樣就使用.plot方法創(chuàng)建plot時(shí)就會(huì)調(diào)用設(shè)置的庫
df.plot(kind='scatter', x='1', y='2')
7、重置顯示選項(xiàng)
如果希望將特定選項(xiàng)的參數(shù)設(shè)置回默認(rèn)值,可以調(diào)用reset_option方法并傳入想要重置的選項(xiàng)。
pd.reset_option('display.max_rows')
或者可以通過all作為參數(shù)將它們?nèi)扛幕啬J(rèn)值。
pd.reset_option('all')
如果想一次設(shè)置多個(gè)選項(xiàng)可以這樣做。
settings = { 'max_columns': 30, 'min_rows':40, 'max_rows': 30, 'precision': 3 } for option, value in settings.items(): pd.set_option("display.{}".format(option), value)
這樣做可以幫助節(jié)省時(shí)間,減少編寫的代碼數(shù)量,提高可讀性。
總結(jié)
Pandas是一個(gè)功能強(qiáng)大的庫,但是默認(rèn)選項(xiàng)可能不適合特定的需要。本文介紹了一些常用選項(xiàng),可以改進(jìn)查看數(shù)據(jù)的方式。
到此這篇關(guān)于7個(gè)有用的Pandas顯示選項(xiàng)分享的文章就介紹到這了,更多相關(guān)Pandas顯示選項(xiàng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python利用神經(jīng)網(wǎng)絡(luò)解決非線性回歸問題實(shí)例詳解
這篇文章主要介紹了Python利用神經(jīng)網(wǎng)絡(luò)解決非線性回歸問題,結(jié)合實(shí)例形式詳細(xì)分析了Python使用神經(jīng)網(wǎng)絡(luò)解決非線性回歸問題的相關(guān)原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-07-07python關(guān)鍵字and和or用法實(shí)例
這篇文章主要介紹了python關(guān)鍵字and和or用法實(shí)例,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-05-05使用numpy實(shí)現(xiàn)矩陣的翻轉(zhuǎn)(flip)與旋轉(zhuǎn)
這篇文章主要介紹了使用numpy實(shí)現(xiàn)矩陣的翻轉(zhuǎn)(flip)與旋轉(zhuǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06公眾號(hào)接入chatGPT的詳細(xì)教程 附Python源碼
這篇文章主要介紹了公眾號(hào)接入chatGPT教程附Python源碼,這里需要大家準(zhǔn)備一個(gè)域名,一臺(tái)服務(wù)器和一個(gè)公眾號(hào),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02使用jupyter notebook將文件保存為Markdown,HTML等文件格式
這篇文章主要介紹了使用jupyter notebook將文件保存為Markdown,HTML等文件格式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04OpenCV-Python實(shí)現(xiàn)腐蝕與膨脹的實(shí)例
形態(tài)學(xué)操作主要包含:腐蝕,膨脹,開運(yùn)算,閉運(yùn)算,形態(tài)學(xué)梯度運(yùn)算,頂帽運(yùn)算,黑帽運(yùn)算等操作,本文主要介紹了腐蝕與膨脹,感興趣的小伙伴們可以參考一下2021-06-06淺析python實(shí)現(xiàn)scrapy定時(shí)執(zhí)行爬蟲
這篇文章主要介紹了淺析python實(shí)現(xiàn)scrapy定時(shí)執(zhí)行爬蟲的相關(guān)資料,需要的朋友可以參考下2018-03-03