KNIME + Python = 数据分析+报表全流程
Python 数据分析环境
数据分析领域有很多可选方案,例如SPSS傻瓜式分析工具,SAS专业性商业分析工具,R和python这类需要代码编程类的工具。个人选择是python这类,包括pandas,numpy,matplotlib,sklearn,keras。基于jupyter或者zeppelin作为编程界面,可以用python开发出比较清爽的数据分析报告。
总体来说,jupyter notebook编写的分析结果基本上可以满足要求,但是也有些弊端,例如无法做很好的presentation,虽然可以通过convert slides得到比较好的presentation胶片,但是无法展现直观的数据流和数据分析流程。
理想的数据分析应该包括:清晰的数据流和数据分析流程;直观的数据分析结果报告。
经过对多种开源方案的比较,我选择使用knime+python的方案,可以有以下的优点
- 利用python和相关数据分析库的能力,对数据建模、分析、可视化,这块基于Anaconda;
- 利用knime的可视化数据流和report design能力,对数据ETL、建模、分析、报告。
knime + python
anaconda建立数据分析环境
一般需要使用到的库包括:pandas,seanborn,numpy,scipy,statsmodel,matplotlib,keras,TensorFlow。
knime建立可视化数据流/report环境
KNIME的发展始于2004年1月,由康斯坦茨大学的软件工程师团队作为专有产品。由Michael Berthold领导的原始开发团队来自硅谷的一家公司,为制药行业提供软件。最初的目标是创建一个模块化,高度可扩展和开放的数据处理平台,从而轻松集成不同的数据加载,处理,转换,分析和可视化探索模块,而不必关注任何特定的应用领域。该平台旨在成为一个协作和研究平台,也应作为各种其他数据分析项目的集成平台。
Knime IDE基于eclipse开发,插件的安装和eclipse一样。我们需要结合knime和python做数据分析,需要安装以下插件:
- KNIME Python Integration,安装后可以使用‘Python Script’和‘Python View’ node
- KNIME Report Designer
knime 中“Python Script” node
Python Script node可以处理前一个节点数据,数据名称是input_table,类型是pandas.DataFrame。DataFrame的操作api就是pandans的api。数据处理完后将结果输出,输出的数据是output_table.
举个例子,选择一个PythonScript node之后,右击选择Configure...,进入python代码输入框。
import pandas as pd
df = input_table
df = df[df['gender'] == 'M']
output_table = df
knime中“Python View” node
Python View节点对输入数据做可视化,输出图片,输入数据通用是input_table,可视化可以使用任意的python库,首选当然是Matplotlib。输出的图片需要赋值给变量output_image。举个例子:
import matplotlib.pyplot as plt
from io import BytesIO
df = input_table
df['score'].plot()
# output the image
buffer = BytesIO()
plt.saveFig(buffer, format='svg')
output_image = buffer.getvalue()
knime中“Image to Report” node
Python View节点输出的图片可以作为report的元素,借助“Image to Report”节点可以将图片输出,注意需要重新设置图片大小,默认100x100尺寸太小。
knime中report模块
report模块基于birt,开发界面和BIRT一样。优点是这里能够将knime数据流中的Report节点数据/图片自动引入到report中的“Data set view”。在设计report的时候可以引入图片或者表格数据。
数据分析流程

BIRT报表

KNIME + Python = 数据分析+报表全流程的更多相关文章
- python 网络爬虫全流程教学,从入门到实战(requests+bs4+存储文件)
python 网络爬虫全流程教学,从入门到实战(requests+bs4+存储文件) requests是一个Python第三方库,用于向URL地址发起请求 bs4 全名 BeautifulSoup4, ...
- 用一个完整的案例讲解Python数据分析的整个流程和基础知识
先来想一下数据分析的流程,第一步获取数据,因此本节内容就是获取数据以及对数据的基本操作. 1.数据导入 1.1 导入.xlsx文件 要导入一个.xlsx后缀的Excel文件,可以使用pd.read_e ...
- 《谁说菜鸟不会数据分析》高清PDF全彩版|百度网盘免费下载|Python数据分析
<谁说菜鸟不会数据分析>高清PDF全彩版|百度网盘免费下载|Python数据分析 提取码:p7uo 内容简介 <谁说菜鸟不会数据分析(全彩)>内容简介:很多人看到数据分析就望而 ...
- 【拖拽可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
"整篇文章较长,干货很多!建议收藏后,分章节阅读." 一.设计方案 整体设计方案思维导图: 整篇文章,也将按照这个结构来讲解. 若有重点关注部分,可点击章节目录直接跳转! 二.项目 ...
- 数据分析电子商务B2C全流程_数据分析师
数据分析电子商务B2C全流程_数据分析师 目前,绝大多数B2C的转化率都在1%以下,做的最好的也只能到3.5%左右(比如以卖图书为主的当当) 我想,所有的B2C都会关心三个问题:究竟那97%去了哪里? ...
- Python数据分析之路(一)查询和统计
0. 如何入门数据分析 关注沙漠之鹰的同学一定看过沙漠君写得很多篇数据分析文章,比如分析房价,车价,预测机动车摇号这些话题.其实文章中所有的分析都使用了Python和它非常强大的数据分析库Pandas ...
- 如何使用 CODING 实践 DevOps 全流程
你好,欢迎使用 CODING!这份最佳实践将帮助你通过 CODING 研发管理系统来更好地实践 DevOps 流程. DevOps 的本质是打破各个部门之间的隔阂,打通企业的前中后台,推进跨部门协作. ...
- 10个步骤教你如何安装Anaconda安装,Python数据分析入门必看
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:小白 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行 ...
- AI全流程开发难题破解之钥
摘要:通过对ModelArts.盘古大模型.ModelBox产品技术的解读,帮助开发者更好的了解AI开发生产线. 本文分享自华为云社区<[大厂内参]第16期:华为云AI开发生产线,破解AI全流程 ...
随机推荐
- Java界面编程—布局管理
布局是指容器中组件的排列方式 常用的布局管理器 布局管理器名称 所属类包 说明 FlowLayout(流式布局) java.awt 组件按照加入的先后顺序.按照设置的对齐方式从左向右排列,一行排满后到 ...
- Servlet会话管理一(URL重写和表单隐藏域)
会话可以简单的理解为客户端用户打开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器的整个过程称为一个会话.即一个客户端用户和服务器端进行通讯的过程,也是客户端和服务器端之间的数据传 ...
- eclipse中tomcat调试正确关联源码
1.build path中jar包关联本地源码 2.tomcat中添加source关联工程lib下的jar包 以上两步即可. 可解决tomcat直接关联本地源码debug时无法计算表达式的情况. 错误 ...
- windows mysql 主从热备
环境说明: Master:192.168.1.200 Slave:192.168.1.210 MySQL 的 Master 配置: 配置my.ini: [mysqld] # T ...
- openssl AES加密
此代码不涉及ECB和CBC等关联加密 #include <stdio.h> #include <string.h> #include <stdlib.h> #inc ...
- codeforces C. Functions again
题意:给定了一个公式,让你找到一对(l,r),求解出公式给定的F值. 当时没有想到,我把(-1)^(i-l)看成(-1)^i,然后思路就完全错了.其实这道题是个简单的dp+最长连续子序列. O(n)求 ...
- Java关键字解释及作用
JAVA 关键字及其作用解释 1. 访问控制 1) private 私有的 private 关键字是访问控制修饰符,可以应用于类.方法或字段(在类中声明的变量). 只能在声明 private(内部)类 ...
- Syslog和Windows事件日志收集
Syslog和Windows事件日志收集 EventLog Analyzer从分布式Windows设备收集事件日志,或从分布式Linux和UNIX设备.交换机和路由器(Cisco)收集syslog.事 ...
- rails 部署 can't find gem bundler (>= 0.a) with executable bundle
多方寻找终得果,先感谢原作者,原作者博文 原因是本地项目bundler 和 服务器 bundler 版本不一致导致,项目是在本地建立,故Gemfile.lock最后一行BUNDLED WITH中是1. ...
- java笔记--问题总结
1. 垃圾回收算法 标记-清除算法 标记-清除算法是最基本的算法,和他的名字一样,分为两个步骤,一个步骤是标记需要回收的对象.在标记完成后统一回收被标记的对象.这个算法两个问题.一个是效率问题,标记和 ...