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()

​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值