作者:俊欣
來源:關(guān)于數(shù)據(jù)分析與可視化
今天我們來講一下用Pandas模塊對數(shù)據(jù)集進行分析的時候,一些經(jīng)常會用到的配置,通過這些配置的幫助,我們可以更加有效地來分析和挖掘出有價值的數(shù)據(jù)。
數(shù)據(jù)集的準(zhǔn)備
這次我們需要用到的數(shù)據(jù)集是廣為人所知的泰坦尼克號的乘客數(shù)據(jù),我們先導(dǎo)入并且讀取數(shù)據(jù)集
import pandas as pd
df = pd.read_csv("train.csv")
展示更多的行
Pandas默認(rèn)只展示60行的數(shù)據(jù),如果數(shù)據(jù)集當(dāng)中的數(shù)量超過了60行,
pd.get_option('display.max_rows') ## 或者是 pd.options.display.max_rows
output
60
要是數(shù)據(jù)集當(dāng)中的數(shù)據(jù)超過了60行,則會將中間的數(shù)據(jù)給折疊起來,展示出來前面的5行以及最后的5行,如下圖所示
當(dāng)然我們也可以改變最多展示出來的行數(shù),代碼如下
pd.set_option('display.max_rows', 200)
或者我們要是想將所有的數(shù)據(jù)都給展示出來的話,就設(shè)置成None,當(dāng)然要是我們的數(shù)據(jù)集很長很長的話,有幾萬行幾十萬行的話,這么做可能會使得notebook崩掉
pd.set_option('display.max_rows', None)
或者是 # pd.options.display.max_rows = None
展示更多的列
同樣地,pandas默認(rèn)只展示20列的數(shù)據(jù)
pd.get_option('display.max_columns') # pd.options.display.max_columns
output
20
要是數(shù)據(jù)集超過了20列的數(shù)據(jù),中間的幾列數(shù)據(jù)就會折疊起來,如下圖所示
當(dāng)然我們也可以改變這個值,例如當(dāng)數(shù)據(jù)集當(dāng)中的數(shù)據(jù)超過了50列才會被折疊,代碼如下
# 當(dāng)數(shù)據(jù)集當(dāng)中的數(shù)據(jù)超過了50列才會被折疊 pd.set_option('display.max_columns', 50) # pd.options.display.max_columns = 50
或者就干脆展示出來所有的列
pd.set_option('display.max_columns', None) # pd.options.display.max_columns = None
改變列的寬度
當(dāng)我們想要展示數(shù)據(jù)集當(dāng)中的前5列的時候
df.head()
output
我們發(fā)現(xiàn)“Name”這一列當(dāng)中的第二行因為字?jǐn)?shù)比較多,就用了省略號來代替,這是因為Pandas對顯示數(shù)據(jù)的量也是有限制的,
pd.get_option('display.max_colwidth') # pd.options.display.max_colwidth
當(dāng)然我們也能改變這個默認(rèn)值,代碼如下
pd.set_option('display.max_colwidth', 500) # pd.options.display.max_colwidth = 500
或者顯示出所有的內(nèi)容
pd.set_option('display.max_colwidth', None) # pd.options.display.max_colwidth = None
改變浮點數(shù)的精度
或許你也察覺到了Pandas對于浮點數(shù)的精度的展示也是有限制的,如下圖所示
默認(rèn)只展示小數(shù)點后面的6位小數(shù),
pd.get_option('display.precision') # pd.options.display.precision
output
6
要是我們只是希望展示小數(shù)點后面2位小數(shù),則可以這么來做
pd.set_option('display.precision', 2) # pd.options.display.precision = 2
我們來看一下最終的效果如何
df.head()
output
個性化展示數(shù)字
有時候我們遇到例如貨幣、百分比、小數(shù)等數(shù)字時,可以通過pandas當(dāng)中的display.float_format方法來個性化展示數(shù)字,
pd.set_option('display.float_format', '{:,.2f}'.format) df_test
例如我們希望對數(shù)字添加百分號來展示,代碼如下
pd.set_option('display.float_format', '{:.2f}%'.format) df_test
例如我們希望在數(shù)字面前添加貨幣符號,代碼如下
pd.set_option('display.float_format', '${:.2f}'.format) df_test
改變圖表繪制的后端
默認(rèn)的Pandas模塊對圖表的繪制是以matplotlib為后端的,但是以此為后端繪制出來的圖表并不是動態(tài)可交互的,我們可以改成以plotly或者是altair為后端來繪制圖表,
import pandas as pd import numpy as np
pd.set_option('plotting.backend', 'altair') data = pd.Series(np.random.randn(100).cumsum()) data.plot()
重置回默認(rèn)的配置
除了上面小編介紹的配置之外,大家也可以自行對數(shù)據(jù)集的展示的配置進行調(diào)整,首先我們看一下總共有哪些配置可以供我們來調(diào)整
pd.describe_option()
output
要是我們指定想要看橫軸方向上的配置,可以這么來做
pd.describe_option("rows")
output
依次我們可以對最大展示出來的行數(shù)、最少展示出來的行數(shù)進行調(diào)整,而要是你想將所有的配置還原成默認(rèn)值,可以這么來做
pd.reset_option('all')