栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

熊猫:如何相互绘制年度数据

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

熊猫:如何相互绘制年度数据

假设以

pandas.TimeSeries
对象为起点,则可以使用ISO周编号和ISO周日将元素分组
datetime.date.isocalendar()
。以下语句(忽略ISO年)汇总了每天的最后一个样本。

In [95]: daily = ts.groupby(lambda x: x.isocalendar()[1:]).agg(lambda s: s[-1])In [96]: dailyOut[96]: key_0(1, 1)     63(1, 2)     91(1, 3)     73...(20, 5)    82(20, 6)    53(20, 7)    63Length: 140

可能有一种更干净的方法来执行下一步,但目标是将索引从元组数组更改为MultiIndex对象。

In [97]: daily.index = pandas.MultiIndex.from_tuples(daily.index, names=['W', 'D'])In [98]: dailyOut[98]: W   D1   1    63    2    91    3    73    4    88    5    84    6    95    7    72...20  1    81    2    53    3    78    4    64    5    82    6    53    7    63Length: 140

最后一步是从MultiIndex中“取消堆叠”工作日,为每个工作日创建列,并将工作日数字替换为缩写,以提高可读性。

In [102]: dofw = "Mon Tue Wed Thu Fri Sat Sun".split()In [103]: grid = daily.unstack('D').rename(columns=lambda x: dofw[x-1])In [104]: gridOut[104]:     Mon  Tue  Wed  Thu  Fri  Sat  SunW   1    63   91   73   88   84   95   722    66   77   96   72   56   80   66...19   56   69   89   69   96   73   8020   81   53   78   64   82   53   63

要为每周创建一个折线图,请转置数据框,使列为周数,行为工作日(请注意,可以通过在上一步中取消堆叠周数来代替工作日来避免此步骤),并调用

plot

grid.T.plot()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/669617.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号