美文网首页
解析数据-写入excel-读取-生成饼图

解析数据-写入excel-读取-生成饼图

作者: 非鱼2018 | 来源:发表于2020-05-03 12:55 被阅读0次

    本文主要内容:
    1.构造DateFrame的常用方式:使用字段列表
    2.使用df.toexcel()生成excel
    3.df.read_excel()读取
    4.使用df.loc[]获取数据
    5.使用plot生成饼图

    从http请求接口中获取数据,这一步不写了,直接构造数据

    import pandas as pd
    import matplotlib.pyplot as plt
    
    # 仿原始数据,content内容省略了,原始数据肯定要比这个复杂,http请求返回数据,直接用response.json返回json格式
    data = [{"id": 100, "title": "json*",'content':{"flag":"是"}}, {"id": 101, "title": "python*",'content':{"flag":"是"}},
            {"id": 103, "title": "java*",'content':{"flag":"是"}},{"id": 104, "title": "c#*",'content':{"flag":"否"}}
            ]
    
    
    def parse_data(content):
        for i in content:
            yield {"ID": i.get("id"), # 返回生成器
                   "语言": i.get('title').strip('*'),
                   "标识":i.get('content').get('flag')
                   }
    
    datas = parse_data(data)
    list1 = []
    for data in datas:
        list1.append(data)
    
    # 字典列表创建dataframe
    
    #生成dataframe,写入excel
    df = pd.DataFrame(list1)
    df.to_excel('data001.xlsx', index=False)
    

    第二常用创建df的方式 {"id":ids,"name":names} 其中ids,names为列表,表示列的数据,所有id的列表可用jsonpath获取
    生成的excel数据:


    image.png

    第二步:读取数据,生成饼图

    # 先读取excel需安装xlrd
    df2 = pd.read_excel('data001.xlsx')
    isflag = df2.loc[df2['标识'] == "是", :].shape[0]
    # 得到flag是"是"的总行数
    noflag = len(df2.loc[df2['标识'] == "否", :])
    plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
    plt.axis('equal')  # 圆形
    labels = ['已覆盖', '未覆盖']
    sizes = [isflag, noflag]  #
    explode = (0, 0.1)  # 离开中心距离
    plt.pie(sizes, explode=explode, labels=labels, autopct='%1.f%%')
    plt.title("覆盖占比")
    plt.show()
    # plt.savefig('data1.png', figsize=[10, 10]) #保存图片
    
    
    image.png

    相关文章

      网友评论

          本文标题:解析数据-写入excel-读取-生成饼图

          本文链接:https://www.haomeiwen.com/subject/epddghtx.html