matplotlib學習筆記【11】:利用pandas對數據進行統計,利用matplotlib畫出柱狀圖進行數據分析

今天做了一些簡單的數據分析和統計,記錄一下。數據格式如下:

name字段代表廠商,device字段代表設備,type字段是設備型號

1. 主函數

if __name__ == '__main__':
    data = pd.read_csv('testData.csv')
    ds = data_solution()
    ds.dealwith_server(data)
    ds.dealwith_save(data)
    ds.dealwith_firewall(data)
    ds.view_all(data)
    ds.view_all2(data)

   read_csv是pandas的一個常用功能。

2. 統計各個廠商的服務器(server)

    def dealwith_server(self,data):
        hw_server = data[(data['name']=='HW')&(data['device']=='server')]
        hw_server_count = hw_server.device.count()
        tx_server = data[(data['name']=='TX')&(data['device']=='server')]
        tx_server_count = tx_server.device.count()
        h3_server = data[(data['name']=='H3')&(data['device']=='server')]
        h3_server_count = h3_server.device.count()
        y = [hw_server_count,tx_server_count,h3_server_count]
        x = ['HW','TX','H3']
        plt.bar(x,y, facecolor='#9999ff', edgecolor='white',width=0.4,label='server')  # 指定x,y座標以及柱狀圖的顏色
        plt.legend(loc='upper right')
        for x, y in zip(x, y):
            plt.text(x , y + 0.05, '%d' % y, ha='center', va='bottom')
        plt.show()

其中(data['name']=='HW')&(data['device']=='server') 是pandas中的刪選條件,也就是按照HW和server進行篩選,選出HW的server,然後再統計有多少臺。

 

3. 統計各個廠商的存儲

    def dealwith_save(self,data):
        hw_save = data[(data['name'] == 'HW') & (data['device'] == 'save')]
        hw_save_count = hw_save.device.count()
        tx_save = data[(data['name'] == 'TX') & (data['device'] == 'save')]
        tx_save_count = tx_save.device.count()
        h3_save = data[(data['name'] == 'H3') & (data['device'] == 'save')]
        h3_save_count = h3_save.device.count()
        y = [hw_save_count, tx_save_count, h3_save_count]
        x = ['HW', 'TX', 'H3']
        plt.bar(x, y, facecolor='#00BFFF', edgecolor='white', width=0.4, label='save')  # 指定x,y座標以及柱狀圖的顏色
        plt.legend(loc='upper right')
        for x, y in zip(x, y):
            plt.text(x, y + 0.05, '%d' % y, ha='center', va='bottom')
        plt.show()

 

4. 統計各個廠商的防火牆

    def dealwith_firewall(self,data):
        hw_firewall = data[(data['name'] == 'HW') & (data['device'] == 'firewall')]
        hw_firewall_count = hw_firewall.device.count()
        tx_firewall = data[(data['name'] == 'TX') & (data['device'] == 'firewall')]
        tx_firewall_count = tx_firewall.device.count()
        h3_firewall = data[(data['name'] == 'H3') & (data['device'] == 'firewall')]
        h3_firewall_count = h3_firewall.device.count()
        y = [hw_firewall_count, tx_firewall_count, h3_firewall_count]
        x = ['HW', 'TX', 'H3']
        plt.bar(x, y, facecolor='#FF1493', edgecolor='white', width=0.4, label='firewall')  # 指定x,y座標以及柱狀圖的顏色
        plt.legend(loc='upper left')
        for x, y in zip(x, y):
            plt.text(x, y + 0.05, '%d' % y, ha='center', va='bottom')
        plt.show()

 

5. 統計所有設備的總體情況

​
    def view_all(self,data):
        hw = data[data['name']=='HW'].device.count()
        tx = data[data['name']=='TX'].device.count()
        h3 = data[data['name']=='H3'].device.count()
        y = [hw,tx,h3]
        x = ['HW','TX','H3']
        plt.bar(x, y, facecolor='#00FFFF', edgecolor='white', width=0.4, label='all_device')  # 指定x,y座標以及柱狀圖的顏色
        plt.legend(loc='upper left')
        for x, y in zip(x, y):
            plt.text(x, y + 0.05, '%d' % y, ha='center', va='bottom')
        plt.show()

​

發佈了234 篇原創文章 · 獲贊 71 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章