自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

七個有用的Pandas顯示選項

開發(fā) 前端
Pandas是一個在數(shù)據(jù)科學中常用的功能強大的Python庫。它可以從各種來源加載和操作數(shù)據(jù)集。當使用Pandas時,默認選項就已經(jīng)適合大多數(shù)人了。但是在某些情況下,我們可能希望更改所顯示內容的格式。所以就需要使用Pandas的一些定制功能來幫助我們自定義內容的顯示方式。

Pandas是一個在數(shù)據(jù)科學中常用的功能強大的Python庫。它可以從各種來源加載和操作數(shù)據(jù)集。當使用Pandas時,默認選項就已經(jīng)適合大多數(shù)人了。但是在某些情況下,我們可能希望更改所顯示內容的格式。所以就需要使用Pandas的一些定制功能來幫助我們自定義內容的顯示方式。

1、控制顯示的行數(shù)

在查看數(shù)據(jù)時,我們希望看到比默認行數(shù)更多或更少的行數(shù)(默認行數(shù)為10)。

arr_data = np.random.default_rng().uniform(0, 100, size=(100,5))
pd.DataFrame(arr_data, columns=list('ABCDE'))

可以看到,默認包括數(shù)據(jù)幀的前5行和后5行。因為這樣可以防止pandas在調用數(shù)據(jù)框架時顯示大量的數(shù)據(jù),從而降低計算機的速度。

這里有兩個選項可用于控制顯示的行數(shù)。

首先是display.max_rows,它控制在截斷之前顯示的最大行數(shù)。如果數(shù)據(jù)中的行數(shù)超過此值,則顯示將被截斷。默認設置為60。

如果希望顯示所有行,則需要將display.max_rows設置為None。如果數(shù)據(jù)非常大,這可能會占用很多資源并且降低計算速度。

pd.set_option('display.max_rows', None)

這樣就可以看到df中的所有行。

圖片

如果數(shù)據(jù)的行數(shù)多于 max_rows 設置的行數(shù),則必須將 display.min_rows 參數(shù)更改為要顯示的值。還需要確保 max_rows 參數(shù)大于 min_rows。

pd.set_option('display.min_rows', 20)

如果將min_rows設置為20,那么當查看時,將看到頂部有10行,底部有10行。

2、控制顯示的列數(shù)

當處理包含大量列的數(shù)據(jù)集時,pandas將截斷顯示,默認顯示20列。下圖第9列和第15列之間的三個點(省略號)表示已經(jīng)被截斷了

上述數(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列。但是這可能會導致其他問題,例如當有圖片時這會變得很難看。

3、禁止科學記數(shù)法

通常在處理科學數(shù)據(jù)時,你會遇到非常大的數(shù)字。一旦這些數(shù)字達到數(shù)百萬,Pandas就會將它們重新格式化為科學符號,這可能很有幫助,但并不總是如此。

要生成具有非常大值的數(shù)據(jù),可以使用以下代碼。

arr_data = np.random.default_rng().uniform(0, 10000000, size=(10,3))
df = pd.DataFrame(arr_data)
df

如果想要顯示這些數(shù)字的完整形式而不使用科學符號。這可以通過更改float_format顯示選項并傳入一個lambda函數(shù)來實現(xiàn)。這將重新格式化顯示,使其具有不帶科學記數(shù)法的值和最多保留小數(shù)點后3位。

pd.set_option('display.float_format', lambda x: f'{x:.3f}')

如果你想讓它看起來更好看,你可以在千位之間添加逗號分隔符。

下面的代碼可能看起來與上面的相同,但是如果您仔細查看該代碼的f'{x:部分后面有一個逗號。

pd.set_option('display.float_format', lambda x: f'{x:,.3f}')

圖片

4、更改數(shù)據(jù)的浮點精度

在某些情況下,數(shù)據(jù)可能在小數(shù)點后有太多的值,這樣看起來很亂。默認情況下,Pandas將在小數(shù)點后顯示6個位。

圖片

為了使它更容易閱讀,可以通過調用display.precision來減少顯示的值的數(shù)量。

pd.set_option('display.precision', 2)

數(shù)值列的浮點精度已降低到2。

圖片

此設置只更改數(shù)據(jù)的顯示方式。它不更改底層數(shù)據(jù)值。

5、控制Float格式

在某些情況下,數(shù)字可以代表百分比或貨幣價值。如果是這種情況,用正確的單位來格式化它們是很方便的。

若要在列后面添加百分比符號,可以調用display.float_format選項,并使用f-string傳入想要顯示的格式:

pd.set_option('display.float_format', f'{:,.3f}%')

圖片

要以美元符號開始,可以這樣更改代碼:

pd.set_option('display.float_format', f'${:,.2f}')

圖片

6、更改默認的Pandas繪圖庫

在進行探索性數(shù)據(jù)分析時,通常需要快速生成數(shù)據(jù)圖??梢允褂胢atplotlib來構建一個plot,但是在Pandas中可以使用.plot()方法使用幾行代碼來完成它。

Pandas為我們提供了一系列可以使用的繪圖庫:

  • matplotlib
  • hvplot >= 0.5.1
  • holoviews
  • pandas_bokeh
  • plotly >= 4.8
  • altair

要更改當前的默認繪圖庫,需要更改plotting.backend選項。

pd.options.plotting.backend = "hvplot"

這樣就使用.plot方法創(chuàng)建plot時就會調用設置的庫

df.plot(kind='scatter', x='1', y='2')

圖片

7、重置顯示選項

如果希望將特定選項的參數(shù)設置回默認值,可以調用reset_option方法并傳入想要重置的選項。

pd.reset_option('display.max_rows')

或者可以通過all作為參數(shù)將它們全部更改回默認值。

pd.reset_option('all')

如果想一次設置多個選項可以這樣做。

 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ù)量,提高可讀性。

總結

Pandas是一個功能強大的庫,但是默認選項可能不適合特定的需要。本文介紹了一些常用選項,可以改進查看數(shù)據(jù)的方式。


責任編輯:華軒 來源: DeepHub IMBA
相關推薦

2023-07-14 14:53:38

人工智能prompt

2023-09-07 16:28:46

JavaScrip

2022-04-25 14:27:05

Pandas函數(shù)數(shù)據(jù)

2023-05-22 14:57:47

2023-09-27 22:14:10

GIT 命令開發(fā)

2024-01-03 18:45:35

Pandas繪圖函數(shù)

2022-11-18 14:33:39

2011-03-02 09:34:58

AppFuse

2018-05-17 13:59:28

IT顧問

2021-11-17 15:28:06

LinuxLinux命令

2015-06-11 13:34:54

編程編程階段

2022-06-15 10:24:13

Pytho裝飾器代碼

2024-11-06 14:26:40

2022-09-21 11:47:15

CIO虛假敏捷

2010-09-10 12:07:32

重點網(wǎng)絡協(xié)議

2023-11-06 18:06:00

Docker容器

2012-03-30 10:03:27

HTML 5

2021-11-22 14:57:35

數(shù)據(jù)治理CIO數(shù)字化轉型

2022-10-11 07:20:56

YAML字符串語言

2022-08-17 09:54:57

Java性能優(yōu)化
點贊
收藏

51CTO技術棧公眾號