pandas數(shù)據(jù)處理之繪圖的實(shí)現(xiàn)
Pandas是Python中非常常用的數(shù)據(jù)處理工具,使用起來(lái)非常方便。它建立在NumPy數(shù)組結(jié)構(gòu)之上,所以它的很多操作通過(guò)NumPy或者Pandas自帶的擴(kuò)展模塊編寫(xiě),這些模塊用Cython編寫(xiě)并編譯到C,并且在C上執(zhí)行,因此也保證了處理速度。
今天我們就來(lái)體驗(yàn)一下它的強(qiáng)大之處。
1.創(chuàng)建數(shù)據(jù)
使用pandas可以很方便地進(jìn)行數(shù)據(jù)創(chuàng)建,現(xiàn)在讓我們創(chuàng)建一個(gè)5列1000行的pandas DataFrame:
mu1, sigma1 = 0, 0.1
mu2, sigma2 = 0.2, 0.2
n = 1000df = pd.DataFrame(
{
"a1": pd.np.random.normal(mu1, sigma1, n),
"a2": pd.np.random.normal(mu2, sigma2, n),
"a3": pd.np.random.randint(0, 5, n),
"y1": pd.np.logspace(0, 1, num=n),
"y2": pd.np.random.randint(0, 2, n),
}
)
- a1和a2:從正態(tài)(高斯)分布中抽取的隨機(jī)樣本。
- a3:0到4中的隨機(jī)整數(shù)。
- y1:從0到1的對(duì)數(shù)刻度均勻分布。
- y2:0到1中的隨機(jī)整數(shù)。
生成如下所示的數(shù)據(jù):

2.繪制圖像
Pandas 繪圖函數(shù)返回一個(gè)matplotlib的坐標(biāo)軸(Axes),所以我們可以在上面自定義繪制我們所需要的內(nèi)容。比如說(shuō)畫(huà)一條垂線(xiàn)和平行線(xiàn)。這將非常有利于我們:
1.繪制平均線(xiàn)
2.標(biāo)記重點(diǎn)的點(diǎn)
import matplotlib.pyplot as plt ax = df.y1.plot() ax.axhline(6, color="red", linestyle="--") ax.axvline(775, color="red", linestyle="--") plt.show()

我們還可以自定義一張圖上顯示多少個(gè)表:
fig, ax = plt.subplots(2, 2, figsize=(14,7)) df.plot(x="index", y="y1", ax=ax[0, 0]) df.plot.scatter(x="index", y="y2", ax=ax[0, 1]) df.plot.scatter(x="index", y="a3", ax=ax[1, 0]) df.plot(x="index", y="a1", ax=ax[1, 1]) plt.show()

3.繪制直方圖
Pandas能夠讓我們用非常簡(jiǎn)單的方式獲得兩個(gè)圖形的形狀對(duì)比:
df[["a1", "a2"]].plot(bins=30, kind="hist") plt.show()

還能允許多圖繪制:
df[["a1", "a2"]].plot(bins=30, kind="hist", subplots=True) plt.show()

當(dāng)然,生成折線(xiàn)圖也不在畫(huà)下:
df[['a1', 'a2']].plot(by=df.y2, subplots=True) plt.show()

4.線(xiàn)性擬合
Pandas還能用于擬合,讓我們用pandas找出一條與下圖最接近的直線(xiàn):

最小二乘法計(jì)算和該直線(xiàn)最短距離:
df['ones'] = pd.np.ones(len(df)) m, c = pd.np.linalg.lstsq(df[['index', 'ones']], df['y1'], rcond=None)[0]
根據(jù)最小二乘的結(jié)果繪制y和擬合出來(lái)的直線(xiàn):
df['y'] = df['index'].apply(lambda x: x * m + c) df[['y', 'y1']].plot() plt.show()

到此這篇關(guān)于pandas數(shù)據(jù)處理之繪圖的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)pandas 繪圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python激活A(yù)naconda環(huán)境變量的詳細(xì)步驟
今天給大家分享Python激活A(yù)naconda環(huán)境變量的詳細(xì)步驟,激活A(yù)naconda環(huán)境變量分為簡(jiǎn)潔版和詳細(xì)版,簡(jiǎn)潔版只需要通過(guò)輸入命令進(jìn)行配置即可,詳細(xì)版本文通過(guò)圖文步驟給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-06-06
python爬取B站關(guān)注列表及數(shù)據(jù)庫(kù)的設(shè)計(jì)與操作
這篇文章主要為大家介紹了python爬取B站關(guān)注列表及數(shù)據(jù)庫(kù)的設(shè)計(jì)與操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Python實(shí)現(xiàn)列表拼接和去重的三種方式
本文主要介紹了Python實(shí)現(xiàn)列表拼接和去重,詳細(xì)的介紹了列表拼接和列表去重三種方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
python實(shí)現(xiàn)根據(jù)ip地址反向查找主機(jī)名稱(chēng)的方法
這篇文章主要介紹了python實(shí)現(xiàn)根據(jù)ip地址反向查找主機(jī)名稱(chēng)的方法,涉及Python使用socket解析IP的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的ping工具方法
今天小編就為大家分享一篇python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的ping工具方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01

