【Python】Pandas數(shù)據(jù)挖掘與分析時(shí)的常用方法
Pandas模塊對數(shù)據(jù)集進(jìn)行分析的時(shí)候,一些經(jīng)常會用到的配置,通過這些配置的幫助,我們可以更加有效地來分析和挖掘出有價(jià)值的數(shù)據(jù)。數(shù)據(jù)集的準(zhǔn)備
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

當(dāng)然我們也可以改變最多展示出來的行數(shù),代碼如下
pd.set_option('display.max_rows',?200)
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

#?當(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列的時(shí)候
df.head()
output

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
改變浮點(diǎn)數(shù)的精度
或許你也察覺到了Pandas對于浮點(diǎn)數(shù)的精度的展示也是有限制的,如下圖所示

默認(rèn)只展示小數(shù)點(diǎn)后面的6位小數(shù),
pd.get_option('display.precision')
#?pd.options.display.precision
output
6
要是我們只是希望展示小數(shù)點(diǎn)后面2位小數(shù),則可以這么來做
pd.set_option('display.precision',?2)
#?pd.options.display.precision?=?2
我們來看一下最終的效果如何
df.head()
output

個性化展示數(shù)字
有時(shí)候我們遇到例如貨幣、百分比、小數(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()
小編之前寫過以plotly以及altair為后端來繪制圖表的教程,感興趣的童鞋可以點(diǎn)擊下面的鏈接查閱
重置回默認(rèn)的配置
除了上面小編介紹的配置之外,大家也可以自行對數(shù)據(jù)集的展示的配置進(jìn)行調(diào)整,首先我們看一下總共有哪些配置可以供我們來調(diào)整
pd.describe_option()
output

要是我們指定想要看橫軸方向上的配置,可以這么來做
pd.describe_option("rows")
output

依次我們可以對最大展示出來的行數(shù)、最少展示出來的行數(shù)進(jìn)行調(diào)整,而要是你想將所有的配置還原成默認(rèn)值,可以這么來做
pd.reset_option('all')
往期精彩回顧
