Skip to content

Latest commit

 

History

History
272 lines (150 loc) · 13.3 KB

10-python-skills-beginners.md

File metadata and controls

272 lines (150 loc) · 13.3 KB

10 个 Python 初学者技能

原文:www.kdnuggets.com/2020/12/10-python-skills-beginners.html

评论

Nicole Janeway Bills,Atlas Research 的数据科学家

图示

图片来源:Shelby Miller 于Unsplash


我们的三大课程推荐

1. Google 网络安全证书 - 快速进入网络安全职业道路。

2. Google 数据分析专业证书 - 提升你的数据分析能力

3. Google IT 支持专业证书 - 支持你在 IT 领域的组织


借助 Python 直观、人性化的语法,任何人都可以利用科学计算的强大功能。Python 已成为数据科学和机器学习的标准语言,并且在Stack Overflow 的 2020 开发者调查中被评为最受喜爱的前三种语言。

如果你是这个备受喜爱的编程语言的新手,这里有十个技巧可以促进你的 Python 技能发展。你可以在这个Google Colab 笔记本中跟随(此外,一个 Google Colab 的简短视频介绍)。

#10 — 列表推导

列表推导是一种简单的单行语法,用于处理列表,它允许你访问并对列表中的单个元素执行操作。

语法由包含如print(plant)的表达式的括号组成,后跟一个for和/或if子句。

将打印:

boat orchid
dancing-lady orchid
nun's hood orchid
chinese ground orchid
vanilla orchid
tiger orchid

(注:列表推导末尾的分号将抑制打印 Jupyter Notebook 单元格最后一行的输出。这样,Jupyter Notebook 不会打印None列表。)

#9 — 单行 if 语句

除了前面的技巧,单行 if 可以帮助你使代码更简洁。

假设我们决定我们有兴趣识别植物是否为兰花。使用单行 if,我们从测试条件为真时我们希望输出的值开始。

这段代码将单行 if 与列表推导结合,用于在植物是兰花时输出 1,否则输出 0。

[1 if 'orchid' in plant else 0 for plant in greenhouse]

将输出:

[1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0]

这个列表本身可能不那么有趣,但与下一个提示结合使用时,我们将看到单行 if 的实际应用。

#8 — 将 lambda 应用到数据框列

Pandas 数据框是一个可以存储表格数据的结构,类似于 Python 中的 Excel。 [lambda](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply.html) 是一个关键字,它提供了对表格中值执行操作的快捷方式。

假设我们有一个关于我们温室植物的信息表:

打印这个数据框将显示如下内容:

帖子图片

假设我们想知道某种植物是否喜欢某位德国古典作曲家。

data[‘music’].apply(lambda x: 1 if x ==bachelse 0)

将输出:

帖子图片

其中第一列是数据框索引,第二列是表示单行 if 输出的系列。

lambda 代表一个 “匿名函数” 。它允许我们在数据框中的值上执行操作,而无需创建正式的函数——即,包含 defreturn 语句的函数,稍后我们将看到。

#7— 将条件应用于多个列

假设我们想要识别哪些喜欢巴赫的植物也需要充足的阳光,这样我们可以将它们一起安排在温室中。

首先,我们使用 def 关键字创建一个函数,并给它一个用下划线连接单词的名称(例如 sunny_shelf)。恰当地,这种命名约定被称为 蛇形命名法 ????

函数 sunny_shelf 接受两个参数作为输入——检查“充足阳光”的列和检查“巴赫”的列。该函数输出这两个条件是否都为真。

在第 4 行,我们对数据框应用了 .apply() 函数,并指定了应作为参数传递的列。 axis=1 告诉 pandas 应该在列上评估该函数(而不是 axis=0,它在行上进行评估)。我们将 .apply() 函数的输出分配给一个名为‘new_shelf’的新数据框列。

或者,我们可以使用 np.where() 函数达到相同的目的:

这个 来自 numpy 库的函数 检查上述指定的两个条件(即植物是否喜欢充足的阳光和德式古典音乐),并将结果分配给‘new_shelf’列。

有关.apply()np.where()以及其他极其有用的代码片段,请查看Chris Albon 的博客

#6— 拆分长代码行

顺便说一下,你可以将括号、方括号或大括号内的任何语句拆分到多行,以避免单行过长。我们在初始化温室列表、创建植物数据框和使用 np.where()函数时见过这种情况。

根据PEP8 Python 风格指南:

包装长行的首选方式是使用 Python 在括号、方括号和大括号中的隐式行续接。

#5 — 读取.csv 并设置索引

现在让我们扩展温室,以便有更多实际数据可用。我们将通过导入一个包含植物数据的.csv 来实现。通过访问此数据集进行跟踪

假设表中包含一个唯一的植物标识符,我们希望将其用作 DataFrame 中的索引。我们可以使用 index_col 参数来设置。

data = pd.read_csv('greenhouse.csv', index_col='plant_id')

Image for post

有关探索性数据分析(EDA)的基础知识及其他 9 个有用的 Python 技巧,请查看这篇文章:

10 个被低估的 Python 技能

提升你的数据科学技能,运用这些技巧改进 Python 编码,提升 EDA、目标分析、特征…

#4— 格式化为货币

我们到底在这些植物上花了多少钱?让我们将此计算的输出格式化为货币。

‘${:,.2f}’.format(data[‘price’].sum())

将输出:

'$15,883.66'

逗号分隔符使我们能够轻松查看到目前为止花费了多少现金。

#3 — 创建透视表

接下来,假设我们想查看每种植物的花费。我们可以使用pd.pivot_table().groupby()进行聚合透视。

pd.pivot_table(data, index=plant’, values=price’, aggfunc=np.sum)

data[[‘plant’,’price’]].groupby(by=plant’).sum()

无论哪种方法都将输出以下内容:

Image for post

我们还可以使用任何方法指定多级透视表。

检查piv.equals(piv0)会返回 True。

结果 DataFrame 如下所示:

Image for post

#2— 计算总百分比

想知道每种植物对温室总成本的贡献吗?将每个值除以所有行的总和,并将该结果分配给一个名为‘perc’的新列:

piv['perc'] = piv['price'].div(piv['price'].sum(axis=0))

Image for post

#1 — 按多个列排序

最后,让我们对 DataFrame 进行排序,使兰花排在顶部,植物按价格降序排列。

piv.sort_values([‘orchid’,’price’], ascending=False)

帖子图片

摘要

在这篇文章中,我们介绍了 10 种对初学者数据科学家可能有用的 Python 技能。这些技巧包括:

在这里访问 Colab 笔记本,并 在这里访问 温室数据集

我希望这篇文章能帮助你作为新数据科学家提升技能。感谢让我在一篇文章中分享我最喜欢的两个事物——Python 和园艺。

如果你喜欢这个故事,请查看 10 个被低估的 Python 技能 和 10 个在培训班上未教的 Python 技能。关注我在 Medium, LinkedIn, YouTube 和 Twitter上的更多数据科学技能提升创意。

更多数据科学家的优秀资源

你从未听说过的最佳数据科学认证

实用的数据策略培训指南。

5 篇必读的数据科学论文(及其使用方法)

基础思想,帮助你在数据科学领域保持领先。

数据分析师、数据科学家和机器学习工程师之间的区别是什么?

通过赛跑比赛的类比来探讨这些常见职位名称之间的区别。

如何让你的数据科学项目具备未来适应性

机器学习模型选择与部署的 5 个关键要素

你的机器学习模型可能会失败吗?

规划过程中需要避免的 5 个失误

个人简介: 妮可·贾纳威·比尔斯 是一名拥有商业和联邦咨询经验的机器学习工程师。妮可精通 Python、SQL 和 Tableau,在自然语言处理(NLP)、云计算、统计测试、定价分析和 ETL 过程方面有业务经验,旨在利用这些背景将数据与业务成果连接起来,并继续发展技术技能。

原文。经许可转载。

相关内容:

  • 10 个被低估的 Python 技能

  • 6 个月数据科学家的 6 条经验教训

  • fastcore:一个被低估的 Python 库

更多相关主题