python数据处理小技巧

python数据处理小技巧,第1张

一.针对echarts桑基图的数据处理
这是我们想要的数据格式
links[{
    source: '家具',
    target: '公司',
    value: 1879156}]

部分源数据截图 

根据表格数据所致我们需要的数据字段来源于["地区", "类别"]["销售额"]

下面我们利于pandas进行数据处理

import pandas as pd

data = pd.read_excel("超市运营数据.xls")
#对地区、类别分组,根据销售额进行求和
a = data.groupby(["地区", "类别"])["销售额"].sum()

这时我们a中的数据为

 根据需求,下面我们可以通过index和values来获取我们所需要的具体值

#地区
print(a.index[0][0])
#类别
print(a.index[0][1])
#销售额
print(a.values[0])

桑基图links所需要的数据是由一个数组中多个字典组成,我们可以通过字典中的setdefault()方法添加多个键值对。Python 字典 setdefault() 方法 (w3school.com.cn)https://www.w3school.com.cn/python/ref_dictionary_setdefault.asp

dic.setdefault("source", a.index[0][0])
dic.setdefault("target", a.index[0][1])
dic.setdefault("value", a.values[0])
print(dic)

#{'source': '东北', 'target': '办公用品', 'value': 839488.916}

 最后只需要将每个字典加入到列表中,下面是全部代码

import pandas as pd
data = pd.read_excel("超市运营数据.xls")
a = data.groupby(["地区", "类别"])["销售额"].sum()
""" links[{
    source: '家具',
    target: '公司',
    value: 1879156}]
"""
links = []
dic = {}
i = 0
while (i
二.针对echarts热力图的数据处理

也是分组聚合 *** 作,数据源还是上面的,代码如下

import pandas as pd

data=pd.read_excel("超市运营数据.xls")

a=data[["城市","利润","子类别"]].groupby("城市")["利润"].sum().reset_index().sort_values(by="利润")

ad=data[["城市","利润","子类别"]]
#最高最低5个城市的利润
bot=a.head(5)
top=a.tail(5)
#数据合并
b=pd.concat((bot,top),axis=0,join="inner")
#过滤掉ad不满足最低最高5个城市的数据
c=ad.loc[ad["城市"].isin(b['城市'].values)]

data2=c.groupby(["子类别","城市"])["利润"].sum().reset_index()

e=data2.values.tolist()
print(data2)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/723458.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)