美文网首页
解析数据-写入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