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