Pandas是Python中很是經常使用的數據處理工具,使用起來很是方便。它創建在NumPy數組結構之上,因此它的不少操做經過NumPy或者Pandas自帶的擴展模塊編寫,這些模塊用Cython編寫並編譯到C,而且在C上執行,所以也保證了處理速度。python
今天咱們就來體驗一下它的強大之處。數組
使用pandas能夠很方便地進行數據建立,如今讓咱們建立一個5列1000行的pandas DataFrame:bash
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),
}
)
複製代碼
生成以下所示的數據:app
Pandas 繪圖函數返回一個matplotlib的座標軸(Axes),因此咱們能夠在上面自定義繪製咱們所須要的內容。好比說畫一條垂線和平行線。這將很是有利於咱們:dom
1.繪製平均線函數
2.標記重點的點工具
import matplotlib.pyplot as plt
ax = df.y1.plot()
ax.axhline(6, color="red", linestyle="--")
ax.axvline(775, color="red", linestyle="--")
plt.show()
複製代碼
咱們還能夠自定義一張圖上顯示多少個表:spa
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()
複製代碼
Pandas可以讓咱們用很是簡單的方式得到兩個圖形的形狀對比:3d
df[["a1", "a2"]].plot(bins=30, kind="hist")
plt.show()
複製代碼
還能容許多圖繪製:code
df[["a1", "a2"]].plot(bins=30, kind="hist", subplots=True)
plt.show()
複製代碼
固然,生成折線圖也不在畫下:
df[['a1', 'a2']].plot(by=df.y2, subplots=True)
plt.show()
複製代碼
Pandas還能用於擬合,讓咱們用pandas找出一條與下圖最接近的直線:
最小二乘法計算和該直線最短距離:
df['ones'] = pd.np.ones(len(df))
m, c = pd.np.linalg.lstsq(df[['index', 'ones']], df['y1'], rcond=None)[0]
複製代碼
根據最小二乘的結果繪製y和擬合出來的直線:
df['y'] = df['index'].apply(lambda x: x * m + c)
df[['y', 'y1']].plot()
plt.show()
複製代碼
咱們的文章到此就結束啦,若是你但願咱們今天的Python 教程,請持續關注咱們,若是對你有幫助,麻煩在下面點一個贊/在看哦
有任何問題均可以在下方留言區留言,咱們都會耐心解答的!Python實用寶典 (pythondict.com)
不僅是一個寶典
歡迎關注公衆號:Python實用寶典
原文來自Python實用寶典:Python pandas高效數據處理之繪圖