数据化运营是提高利润、降低成本、优化运营效率、最大化企业财务回报的必要课题。Python作为数据科学界的关键工具之一,几乎可以应用于所有数据化运营分析和实践的场景。
一 用Python做数据化运营
Python是什么?数据化运营又是什么?为什么要将Python用于数据化运营?本节先来回答这几个问题。
1. Python是什么
Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开版发行于1991年。Python开发的初衷其实是一个开发程序语言,而非专门用于数据工作和科学计算的数据处理或建模程序(当然,现在已经是了)。
为什么我们要选择Python而非其他语言(例如R)进行数据处理、分析和挖掘呢?这是因为Python先天和后天具有的一些特殊条件和能力,使其成为目前企业(尤其是大数据领域)做数据化运营最为合适的工具。
- 开源/免费:使用Python(及其第三方库)无须购买产品、授权或license费用,无论对于个人还是对于企业都是如此。
- 可移植性:Python程序可以跨Windows、Linux、Mac等多平台运行,这点决定了它的移植性非常强,一次开发,多平台应用。
- 丰富的结构化和非结构化数据工作库和工具:Python除了自带数学计算库外,还包括丰富的第三方库和工具,例如用于连接Oracle、MySQL、SQLite等数据库的连接库,数据科学计算库Numpy、Scipy、Pandas,文本处理库NLTK,机器学习库Scikit-Learn、Theano,图形视频分析处理和挖掘库PIL和Opencv,以及开源计算框架TensorFlow等。
- 强大的数据获取和集成能力:Python除了可以支持多种类型的文件(图像、文本、日志、语音、视频等)和数据库集成外,还能通过API、网络抓取等方式获取外部数据,内、外部数据源整合、多源数据集成、异构数据并存、多类型数据交错正是当前企业数据运营的基本形态。
- 海量数据的计算能力和效率:当面对超过GB甚至TB规模的海量数据时,传统数据工具通常无法支撑,更不要提计算效率了。Python对于这个规模数据的计算能力和工作效率要远超过其他数据工作语言。
- 与其他语言的集成:Python具备“胶水”能力,能与Java、C、C++、MATLAB、R等语言集成使用,这意味着既可以把其他语言写成的脚本嵌入Python,也可以把Python脚本嵌入其他语言。
- 强大的学习交流和培训资源:Python已经成为世界上最主流的编程语言和数据处理工作的核心工具之一,有非常多的社区、博客、论坛、培训机构、教育机构提供交流和学习的机会。
- 开发效率高:Python语言简洁、规范,使得在使用Python开发程序时用时更少。这对于以效率优先的程序工作或验证性项目来说非常关键,效率决定商机
- 简单易学:Python语法简单,即使是没有任何代码基础的人也能在几个小时内掌握基本的Python编程技巧,这对于初学者而言至关重要,因为这说明编程式数据分析不再遥不可及,他们能像使用Excel一样使用Python。
总而言之,在具备一定Python经验和技巧的情况下,几乎没有Python无法胜任的工作场景!如果有,那么用Python调用其他语言或用其他语言调用Python后,就会胜任。
二 数据化运营是什么
数据化运营是指通过数据化的工具、技术和方法,对运营过程中的各个环节进行科学分析、引导和应用,从而达到优化运营效果和效率、降低成本、提高效益的目的。
运营是一个范围“弹性”非常大的概念,最大可以延伸到所有公司的事务管理,最小可能只包括网站运营管理工作。运营的范围包括会员运营、商品运营、流量运营和内容运营4方面内容。
1. 数据化运营的重要意义
数据化运营的核心是运营,所有数据工作都是围绕运营工作链条展开的,逐步强化数据对于运营工作的驱动作用。数据化运营的价值体现在对运营的辅助、提升和优化上,甚至某些运营工作已经逐步数字化、自动化、智能化。
具体来说,数据化运营的意义如下:
1)提高运营决策效率。在信息瞬息万变的时代,抓住转瞬即逝的机会对企业而言至关重要。决策效率越高意味着可以在更短的时间内做出决策,从而跟上甚至领先竞争对手。数据化运营可使辅助决策更便捷,使数据智能引发主动决策思考,从而提前预判决策时机,并提高决策效率。
2)提高运营决策正确性。智能化的数据工作方式,可以基于数据科学方法进行数据演练,并得出可量化的预期结果,再配合决策层的丰富经验,会提高运营决策的正确性。
3)优化运营执行过程。数据化运营可以通过标准口径的数据、信息和结论,为运营部门提供标准统一、目标明确的KPI管理,结合数据化的工作方法和思路,优化运营过程中的执行环节,从而降低沟通成本、提高工作效率、提升执行效果。
4)提升投资回报。数据化运营过程中,通过对持续的正确工作目标的树立、最大化工作效率的提升、最优化工作方法的执行,能有效降低企业冗余支出,提升单位成本的投资回报。
2. 数据化运营的两种方式
从数据发挥作用的角度来看,数据化运营分为辅助决策式数据化运营和数据驱动式数据化运营。
(1)辅助决策式数据化运营
辅助决策式数据化运营是运营的决策支持,它是以决策主题为中心的,借助计算机相关技术辅助决策者通过数据、模型、知识等进行业务决策,起到帮助、协助和辅助决策者的目的。例如,通过为决策者提供商品促销销量信息,对企业的促销活动提供有关订货、销售等方面的支持。
(2)数据驱动式数据化运营
数据驱动式数据化运营是指整个运营运作流程以最大化结果为目标,以关键数据为触发和优化方式,将运营业务的工作流程、逻辑、技巧封装为特定应用,借助计算机技术并结合企业内部流程和机制,形成一体化的数据化工作流程。例如,个性化推荐就是一种数据驱动数据化运营方式。
辅助决策式数据化运营和数据驱动式数据化运营是两个层次的数据应用,数据驱动相对于辅助决策的实现难度更高、数据价值体现更大。
- 辅助决策式数据化运营为业务决策方服务,整个过程都由运营人员掌控,数据是辅助角色。
- 数据驱动式数据化运营的过程由数据掌控,数据是主体,实现该过程需要IT、自动化系统、算法等支持,数据驱动具有自主导向性、自我驱动性和效果导向性。
注意:由于数据和流程本身会存在缺陷,同时运营业务通常都有强制性规则的需求,因此即使在数据驱动式数据化运营过程中也会加入人工干预因素。但即使如此,数据作为数据驱动的核心是不变的,也就是说,数据是决策主体本身。
3. 数据化运营的工作流程
上文我们介绍了数据化运营的两种方式:辅助决策式数据化运营和数据驱动式数据化运营。其中数据驱动式数据化运营具体取决于应用场景,不同的场景,其具体工作流程不同。本节重点介绍数据驱动式数据化运营的工作流程。
数据驱动式数据化运营工作包含数据和运营两个主体,在实际工作过程中需要二者协同。在某些大型工作项目上,还有可能涉及与IT部门、信息中心等部门的联动。其工作流程分为3个阶段,如图1-1所示。
▲图1-1 数据驱动式数据化运营工作流程
(1)第1阶段:数据需求沟通
该阶段主要包括需求产生和需求沟通两个步骤。
1)需求产生:由运营部门产生的某些数据化运营需求,例如预测商品销量、找到异常订单、确定营销目标人群名单等。
2)需求沟通:针对运营部门提出的需求进行面对面沟通和交流,沟通主要包含3方面:
- 一是业务需求沟通,包括需求产生的背景、要解决的问题、预期达到的效果等;
- 二是数据现状沟通,包括数据存储环境、主要字段、数据字典、数据量、更新频率、数据周期等,如果没有数据则需要制定数据采集规则并开始采集数据,该过程中可能需要IT部门的协助;
- 三是数据与分析的关联性沟通,根据与运营人员的沟通,了解业务背景下哪些是常见的、带有业务背景的数据、不同场景会导致数据如何变化、分析中会涉及哪些关键字段或场景数据等,业务人员丰富的经验会帮助数据工作者少走很多弯路。
(2)第2阶段:数据分析建模
从这一阶段开始进入正式的数据工作流程,包括获取数据、数据预处理、数据分析建模和数据结论输出4个步骤。
1)获取数据:数据化运营分析所需的数据需要经过特定授权从数据库或文件中得到。
2)数据预处理:在该过程中对数据进行质量检验、样本均衡、分类汇总、合并数据集、删除重复项、分区、排序、离散化、标准化、过滤变量、转置、查找转换、脱敏、转换、抽样、异常值和缺失值处理等。
3)数据分析建模:运用多种数据分析和挖掘方法,对数据进行分析建模。方法包括统计分析、OLAP分析、回归、聚类、分类、关联、异常检测、时间序列、协同过滤、主题模型、路径分析、漏斗分析等。
4)数据结论输出:数据结论的输出有多种方式,常见的方式是数据分析或挖掘建模报告,另外还包括Excel统计结果、数据API输出、数据结果返回数据库、数据结果直接集成到应用程序中进行自动化运营(例如短信营销)。
(3)第3阶段:数据落地应用
该阶段是数据化运营落地的关键阶段,前期所有的准备和处理工作都通过该阶段产生价值。该阶段包括数据结论沟通、数据部署应用及后续效果监测和反馈3个步骤。
- 数据结论沟通:对于输出为报告、Excel统计结果等形式的内容,通常都需要与运营对象进行深入沟通,主要沟通的内容是将通过数据得到的结论和结果与业务进行沟通,通过沟通来初步验证结论的正确性、可靠性和可行性,并对结果进行修正。如果没有可行性,那么需要返回第2阶段重新开始数据分析建模流程。
- 数据部署应用:经过沟通具有可行性的数据结论,可直接应用到运营执行环节。例如,将预测结果作为下一个月的KPI目标,将选择出来的用户作为重点客户进行二次营销。
- 后续效果监测和反馈:大多数的数据化运营分析都不是“一次性”的,尤其当已经进行部署应用之后,需要对之前的数据结论在实践中的效果做二次验证,若有必要则需要进行结论的再次修正和意见反馈。
很多人认为数据化运营工作应该从数据产生之后开始,这是错误的观念,原因在于数据化运营工作的起始是需求产生,而需求的产生与数据的产生往往没有必然关系。
三 Python用于数据化运营
- Python用于数据化运营,将充分利用Python的强大功能和效率来满足数据化运营的复杂需求。
- Python可以将数据化运营过程中来源于企业内外部的海量、多类型、异构、多数据源的数据有效整合到一起,提供丰富的集成、开发、分析、建模和部署应用。
- Python高效的开发效率能帮助数据化运营在最短的时间内进行概念验证,并提供科学的预测结果,为数据化运营的快速和准确提供基础。
- Python可以将数据工作流程和IT工作流程无缝对接,有利于实现数据工作与运营工作的融合。这也是数据驱动式数据化运营的工作方法,有利于真正实现数字化、智能化的运营工作。
四 Python程序
1. Python 2还是Python 3
目前,Python仍然是两个系列的版本并存,一个是Python 2,另一个是Python 3。这两个版本的语法不完全兼容,因此两个版本的程序调用对方的执行脚本将很可能报错。
如果没有特殊需求,大多数场景下选择Python 3都是一个正确的选择。但结合特定场景,笔者还是给出以下具体建议:
- 如果想要成熟、可靠且稳定的程序,选择Python 2和Python 3都可以。
- 如果只是学习或了解一下Python,优选Python 3。
- 如果是企业内部应用,有历史程序需要执行和开发,具体看企业用的是哪个版本。
- 如果你的工作中需要大量的第三方库,而且是比较早期的库,那么使用Python 2。但更多情况下,即使那些只支持Python
2的库不再更新了,也有很多替代库可以实现,因此如果不是必须使用Python 2,还是建议使用Python 3。 - 如果你的程序需要在Linux服务器上运行且使用其原生程序,那么去看看你的Linux服务器自带的Python版本(通常Linux服务器上自带Python
2的居多)。同样的,即使Linux原生带的程序版本低,仍然可以安装并使用Python 3。 - 如果上述没有任何一个场景满足你的需求,那么就从Python 3开始吧。
2. 32位还是64位
大多数情况下,如果没有特殊需求,尽量选择64位版本。
笔者选择了64位Python,3.7版本。选择64位的原因是它能应对更大容量的数据应用,用Python 3除了因为这是趋势外,还有一个重要原因是Numpy已经宣布从2019年1月1日起新功能将只支持Python 3,相信很多系统和工具也开始慢慢放弃对Python 2的支持了。
3. Python环境的搭建
一般情况下,我们可以直接到Python官网https://www.python.org下载需要的版本,然后在安装好Python程序后根据需要自定义安装其他相关库和包。但对大多数初次接触Python的读者来讲,如果能有“一键安装”就更好了。在此,我们介绍Anaconda。
Anaconda是一个Python发行版本,其包含了conda、Python等180多个科学包及其依赖项,它是科学计算领域非常流行的Python包以及集成环境管理的应用。它的优势主要表现在以下几个方面:
- 默认可以帮你安装好Python主程序,而不用单独下载安装。
- 常用的数据工作包,包含数据导入、清洗、处理、计算、展示等各个环节的主要包都已经安装好,如Pandas、Numpy、Scipy、Statsmodels、Scikit-Learn(sklearn)、NetworkX、Matplotlib等。常用的非结构化数据处理工具也一应俱全,如beautifulsoup4、lxml、NLTK、pillow、scikit-image等。
- 很多包的安装有依赖,这点在Linux系统上非常常见,而Anaconda已经将这些依赖的问题统统解决。尤其在离线环境下做Python和大量库的安装部署工作时,Anaconda大大降低了实施难度,是项目开发过程中必不可少的有效工具。
- 提供了类似于pip的包管理功能的命令conda,可以对包进行展示、更新、安装、卸载等常用操作。当然,如果你更喜欢pip,仍然可以继续使用该命令,因为Anaconda默认也安装了该命令。
- 多平台、多版本的通用性,而且紧跟Python主程序更新的步伐。Anaconda支持Windows、Mac
OS和Linux系统,且同时包含32位和64位的Python版本(Python 2和Python 3全都支持)。
提供了IPyton、Jupyter、Spyder交互环境,可以直接通过界面化的方式引导用户操作,易用程度非常高,甚至连具体细分的学习资源都准备好了。
要安装Anaconda环境,只需要登录https://www.anaconda.com/download下载对应版本的安装包即可,如图1-2所示。目前Anaconda发行的最新Python版本包括32位和64位的Python 2.7和Python 3.7。
▲图1-2 Anaconda下载页面
以Windows64位Python 3.7版本为例,下载完成后,会在本地计算机中存在.exe文件,安装过程只需使用默认配置即可。