2019年9月28日发布新文章时更新:
本篇文章内容需作补充。
最近工作上的事情很多,学习燃尽图的绘制、查看项目并进行进度管理成为了空余时间的必做之事。
概览
燃尽图(burn dowm chart)是敏捷开发中的数据可视化跟进工具之一。
可以查看项目管理的进度,显示方式有很多:Excel、Numbers+Python、还有专门的工具Leangoo以及项目管理工具Teambition[1](都可以生成。
笔者为Mac端,使用Numbers+Python进行显示,其他方法不一一赘述但会在文中带过。
准备/回顾
Python——Mac自带2.X版python。
检查Python版本:
Mac自带2.7版本,此处使用Python3.
python3
回车,出现版本:
此处也可以检查Python2的版本,代码则是python2
。
终端退出Python:quit()
或exit()
Jupyter初见
官方网站:Jupyter
Jupyter是什么?
官方解释:
Project Jupyter exists to develop open-source software, open-standards, and services for interactive computing across dozens of programming languages.
我们主要使用Jupyter中的Notebook:
The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, data visualization, machine learning, and much more.
开始安装Jupyter NoteBook,以下代码直接在终端窗口里输入。
使用Anaconda安装Jupyter NoteBook
参考的链接中推荐使用Anaconda进行安装,也可以使用pip进行安装,由于自己使用熟悉的pip安装时遇到了缺少模块的问题,所以这里直接使用Anaconda。
官方网站:Anaconda
The World’s Most Popular Python/R Data Science Platform
安装完成界面:
启动与关闭
终端输入下列代码,即可启动Jupter Nootbook。
jupyter nootbook
关闭,按住control-c后,点击y即可关闭。
Excel制作
如之前所述,燃尽图X轴为时间,纵轴为时间。
每一个表格内可以填入实际的工时/完成进度。关于工时可以使用Tower、秒表等方法记录自己的工时,此处也可以增加一列使用Excel公式进行计算(理想工时)。
示例图片
表格撰写完毕后找到文件路径,保存为xlsx格式。
打开Jupyter Notebook,找到分析文件
首先打开Jupyter Notebook:
下载GitHub上的ipynb文件,修改引号中开始和截止日期并添加文件路径(此处为原稿):
回到之前打开的Jupyter Notebook,找到ipynb文件存储路径,点击服务-重启并运行所有:
出现以下报错。
结果与曾经报错
按道理说此处应该顺利出现燃尽图,参考链接1中成功。
在做爬虫的同事的电脑上运行成功。
报错1
此处我进行到第4步时:
work_load = df.loc[df.index[0]].sum()
work_load
报错信息:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
//anaconda3/lib/python3.7/site-packages/pandas/core/nanops.py in _f(*args, **kwargs)
75 with np.errstate(invalid='ignore'):
---> 76 return f(*args, **kwargs)
77 except ValueError as e:
//anaconda3/lib/python3.7/site-packages/pandas/core/nanops.py in nansum(values, axis, skipna, min_count, mask)
434 dtype_sum = np.float64
--> 435 the_sum = values.sum(axis, dtype=dtype_sum)
436 the_sum = _maybe_null_out(the_sum, axis, mask, min_count=min_count)
//anaconda3/lib/python3.7/site-packages/numpy/core/_methods.py in _sum(a, axis, dtype, out, keepdims, initial)
35 initial=_NoValue):
---> 36 return umr_sum(a, axis, dtype, out, keepdims, initial)
37
pandas/_libs/tslibs/timestamps.pyx in pandas._libs.tslibs.timestamps._Timestamp.__add__()
ValueError: Cannot add integral value to Timestamp without freq.
During handling of the above exception, another exception occurred:
TypeError Traceback (most recent call last)
<ipython-input-4-366603652da3> in <module>
----> 1 work_load = df.loc[df.index[0]].sum()
2 work_load
//anaconda3/lib/python3.7/site-packages/pandas/core/generic.py in stat_func(self, axis, skipna, level, numeric_only, min_count, **kwargs)
10929 skipna=skipna, min_count=min_count)
10930 return self._reduce(f, name, axis=axis, skipna=skipna,
> 10931 numeric_only=numeric_only, min_count=min_count)
10932
10933 return set_function_name(stat_func, name, cls)
//anaconda3/lib/python3.7/site-packages/pandas/core/series.py in _reduce(self, op, name, axis, skipna, numeric_only, filter_type, **kwds)
3628 'numeric_only.'.format(name))
3629 with np.errstate(all='ignore'):
-> 3630 return op(delegate, skipna=skipna, **kwds)
3631
3632 # TODO(EA) dispatch to Index
//anaconda3/lib/python3.7/site-packages/pandas/core/nanops.py in _f(*args, **kwargs)
81 # object arrays that contain strings
82 if is_object_dtype(args[0]):
---> 83 raise TypeError(e)
84 raise
85
TypeError: Cannot add integral value to Timestamp without freq.
在查阅Starkoverflow相关链接以及网友葉棟的帮助下
此处也可能是我表格制作的问题,Python也需要深入进行学习。
此处应修改为:
报错2
可能是pandas版本错误:
PIP安装遇到的坑
我首先尝试使用PIP进行安装,PIP是Python包的安装程序。官网:https://pip.pypa.io/en/stable/
以下代码统一于终端直接输入。
首先升级PIP:
pip3 install --upgrade pip
其次安装Jupyer NoteBook:
pip3 install jupyter notebook
经历了一番下载之后,出现上述图片,即提示安装完成。
在启动并运行的过程中进行到第2步时:
import pandas as pd
df = pd.read_excel(excel_path, header=1)
报错3
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-2-f1b6b0b8a6b4> in <module>
----> 1 import pandas as pd
2 df = pd.read_excel(excel_path, header=1)
ModuleNotFoundError: No module named 'pandas'
由于缺少pandas模块,所以这里我使用Anaconda进行安装。
之后需要卸载PIP安装的Jupyter防止和Anaconda冲突:
pip install pip-autoremove
pip-autoremove jupyter -y
pip-autoremove可以删除掉packege以及无用的依赖。
参考
报错链接相关
Python error: cannot add integral value to Timestamp without freq