【翻译】适用于产品经理的 Python 课程(一)

Posted by zhang on

原文标题:Python for Product Managers- HOW LEARNING A LITTLE PYTHON CAN GO A BIG WAY TO SPEEDING UP YOUR PRODUCT DECISIONS
原文地址:https://productmetrics.net/blog/python-for-product-managers/
原文作者:Joshua
翻译:张小璋 Sylvain Zhang

题图

产品管理可能是是一个具有挑战性的任务,你会以多种不同形式收到需求。因为我们需要采取一切措施,最大限度减少重复任务所花费的时间或者最大化从数据中获得价值。

Python 是一种流行的开源编程语言,相对容易学习。它可以帮助你把无聊的数据分析自动化。

在本系列文章中,我将展示一些示例,说明如何掌握 Python 来节省宝贵的时间并让你作为产品经理对于需求有更深的洞察力。

第一步:安装 Python

安装 Python 的方法取决于你的操作系统和你的要求。

推荐-使用 Anaconda

Anaconda 是一个包含了 Python 和许多你可能需要的最常见和最受欢迎的依赖的发行版。它还为你提供了一种省时省心的方式来添加新以来并使其保持在最新状态。它可能是最简单入门方式。它被广泛使用,因此有很多帮助在网上可以找到。

安装说明可以在网上找到,并且非常容易跟着操作。 1

如果你使用 Anaconda ,你需要熟悉用于依赖管理的 conda 命令。同样的,网上有很多的实例。2

搜索依赖(package):

conda search <package>

安装依赖(package):

conda install <package>

升级依赖(package):

conda install <package>

其他的命令可以去 http://t.cn/EMtA0xA 查看。

另外还有一种方式,但是比较复杂 - 通过 Python.org 安装

Python.org 是 Python 编程语言的发源地。大多数操作系统的安装包都可以直接下载。安装过程仍然相对简单(比起其他语言的配置……)。

如果你不是使用 Anaconda 发行版的 Python ,那么 pip 就是你将使用的包管理器。

第二步:Jupyter Notebooks

有很多种方式去运行 Python 程序。最简单的是可以把源码保存为扩展名为.py的文本文件,然后使用 Python 解释器运行。Python 是一种解释型语言,因此不需要将代码编译成可执行文件(比如:我的程序.exe),而是在运行时解释脚本。这有利于实验!

为了是整个过程更加直接,通过 Jupyter 项目可以获得基于 web 的交互式「笔记本」。这允许你以一种直观的方式通过浏览器来编写和执行 Python 脚本,这有助于进行具有良好记录、可重复的实验。

如果你使用的是 Anaconda ,那么你就已经安装了 Jupyter 。如果没有,可以根据安装说明操作>> http://t.cn/R3o4S8e

要启动基于浏览器的笔记本,请执行以下命令:

jupyter notebook

如果一切顺利,将在 web 浏览器中打开一个显示根目录的文件浏览器。

可以为你可用的 Python 版本之一添加一个新的笔记本(比如,在上面的截图中我使用了 Python3)。

为了证明它一切正常,让我们运行一些 Python 代码,在单元格中键入或者拷贝以下内容:

print("Hello Product Managers")

现在,在选中单元格时,按下 ctrl+回车,你应该看到输出了下面代码。

Jupyter Notebook 的快捷键

虽然 Jupyter Notebook 一个非常友好的工具栏和菜单结构。但是为了追求更快的速度,可以使用许多快捷键来让工作变得更轻松。这里有一些入门:

crtl+enter - 运行当前单元格;
shift+enter - 运行当前单元格并在下面创建一个新的空单元格;
esc - 进入命令行模式。它指的是你可以在单元格上执行命令,而不是在单元格上输入文本。单元格的左侧边框在编辑模式下是绿色,在命令行模式下是蓝色;
a - 当前单元格上方新建单元格(命令行模式下);
b - 当前单元格下方新建单元格(命令行模式下)。

这应该足够开始使用了。还有很多快捷键需要你在使用中学习。

第三步:学习 Python

现在,我不是最适合教你 Python 及其基本语法的人。很多人都有更好的能力做到这一点,并且有丰富的信息、课程或者教程,这将为你提供良好的学习基础。

一些 Python 学习资源:3

Learn Python - interactive tutorials 地址:https://www.learnpython.org/
The Python Tutorial - Python 官方教程 地址:https://docs.python.org/3/tutorial/index.html
Real Python - 很多的教程和技巧 地址:https://realpython.com/python-basics/

或者,你需要一本书!4

第四步:用于数据分析的 Python 模块

在上一步我有点推卸责任,不是么?好吧,为了弥补它,假设你知道一些基本的 Python 知识,这里有一些东西会让你觉得一切都是值得的。如果你还没有学习过,希望这篇文章会激励你继续学下去!

Pandas 5是一个非常棒的模块,可以帮你在 Python 中快速加载、转换和分析数据。如果和我一样,你需要花费大量的时间去通过数据去寻找问题,那么这绝对是一个值得探索的模块。

具体而言,Pandas 是一个可以在您的工作流中为以下常见的数据分析提供有益帮助的工具:

  • 从CSV文件或者直接从数据库中加载数据
  • 查看、筛选和排序数据
  • 查看常见的统计数据和数据集合
  • 连接和合并数据
  • 数据分组、数据透视、数据转换、
  • 绘制可视化数据

在下一篇文章中,我们将会逐一介绍这些方法的实例-但是为了确保你已经对这些方法有一定了解,这里有个小示例。假设我们获得了一个以tab 分割的文本文件,其中包含了 SaaS 应用程序会话的数据。每行代表一个会话,表头为:

  • 唯一ID
  • 会话开始时间
  • 会话结束时间
  • 用户ID

我的示例文件有几年的数据,大小约为100Mb,让我们来看看我们能做什么!6

# 在编辑器里内联显示图表
%matplotlib inline

# 引入一些资源
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt

# 设置一些默认的绘图演示,让显示看起来更好看
matplotlib.rcParams['figure.figsize'] = (20.0, 10.0)
plt.style.use('bmh')
# 从以 tab 分隔符分隔的文本里导入会话数据,确保将开始时间和结束时间加载为日期
df = pd.read_csv('monthly_sessions.csv', sep='\t', parse_dates=['end_datetime', 'start_datetime'])

# 显示前几行数据
df.head()

#让我们看看从文件中加载了多少会话数据
len(df.index)

显示:1293267

# 让我们计算每个月的会话次数,并绘制出趋势图
df.groupby([df.start_datetime.dt.year, df.start_datetime.dt.month]).agg('count').id.plot()
plt.title('Sessions per month')

显示:

Text(0.5, 1.0, 'Sessions per month')

# 让我们计算每个会话的持续时间
df['session_duration'] = df.end_datetime - df.start_datetime

# 然后查看会话持续时间的一些统计信息
df.describe()

# 让我们看一下一周中每天的会话数量
df.start_datetime.dt.weekday.hist(bins=[0,1,2,3,4,5,6,7])

显示:

<matplotlib.axes._subplots.AxesSubplot at 0x7feea73a93c8>

总结

希望这能让你了解如何加载、操作和可视化数据。

但是我可以用 Excel 做!
——某些人会这么说

现在你可以在 Excel 中实现这一点,但是 Python 的优点在于(取决于你的PC能力)它可以更快的处理更大的数据,并且重复分析甚至自动化分析都非常容易。想想一个稍微复杂的例子:上边分析的数据是从多个数据库或文件中提取数据——你可以单击一个按钮重复运行分析,获得新的数据并显示新的结果.


  1. 我是 Mac 系统,建议直接用brew来安装,命令为brew cask install anaconda,brew 真的可以极大的解放你的生产力,相信我使用习惯之后你会爱上它。 

  2. 在国内使用 Anaconda ,因为众所周知的原因速度会比较慢。可以使用清华大学开源软件镜像站(TUNA),地址是:http://t.cn/RfOiKU1,让我们向他们致敬。 

  3. 下边的资源都是英文的,有机会我在 nav.zhang.sb 上专门开一个 Python 的分区来整理一些 Python 中文资源。 

  4. 原文中建议的书籍为:Python 学习手册 原书第五版。英文原版是一本,京东卖¥95.80。中文版两本上下册,京东卖¥172.10. 

  5. Pandas 网址为:https://pandas.pydata.org/ 

  6. 我也没找到这个示例文件的下载地址。 

#About Me

张小璋,野蛮生长成世界500强企业供应链金融产品经理的法语毕业生。微信公众号:张小璋碎碎念(ID: SylvainZhang )。
一直在互联网金融公司从事产品经理工作并负责互联网金融产品线,深耕互联网金融和区块链领域。「PMCAFF」、「人人都是产品经理」专栏作家、「PmTalk」签约作家。