计算 excel 公式 python_excel in函数


Excel是一个无处不在的数据处理、分析工具,大多数人或多或少都使用过Excel,而且一旦你掌握了它的使用技巧,你会打开另外一扇窗!此外,也有人认为,具有无限潜力的Python也非常有挑战性。在这篇文章中,我们将探讨在Excel中能够完成,但是在Python中能够更轻松实现的三件事!

从导入panda开始,并基于工作簿中需要用的工作表加载两个数据帧。两个列的定义为 sales 和 states 。

import pandas as pdsales = pd.read_excel('https://github.com/datagy/mediumdata/raw/master/pythonexcel.xlsx', sheet_name = 'sales')states = pd.read_excel('https://github.com/datagy/mediumdata/raw/master/pythonexcel.xlsx', sheet_name = 'states')

将我们的数据集导入Pandas数据帧。

让我们想象一下,我们对数据帧运行了.head()方法,如下所示:

print(sales.head())

我们可以将其与Excel中的数据进行比较:


计算 excel 公式 python_excel in函数_02

比较数据在Excel和Pandas中的两种显示方式


我们可以看到显示的数据与Excel显示数据的方式相对类似,但有一些关键的区别:

  • Excel从第1行开始,Pandas从第0行开始('index');
  • Excel用以A开头的字母标记列,而Pandas用变量名标记列。

让我们开始深入探讨如何运用 Pandas 完成Excel任务。

Python中的IF函数

在Excel中使用IF函数非常方便,允许我们根据另一个单元格中的条件应用某个标签。假设我们想创建一个新列,让我们知道B列中单元格的值是否大于500。在Excel中,我们将列E标记为大于500,然后进入单元格E2并写入:

=IF([@Sales]>500, "Yes", "No")


计算 excel 公式 python_Python 如何添加新列_03

在Excel中应用IF函数


如果我们想在Pandas中这样做,我们可以使用列表理解来轻松应用相同的 If 语句:

df['MoreThan500'] = ['Yes' if x > 500 else 'No' for x in df['Sales']

列表理解是这类工作的好工具,它减少了编写复杂 if/else 语句的需要。使用 if/else 语句也可以完成相同的任务,但这样可以节省时间并使代码更简洁。通过阅读本文,你可以详细了解列表理解。


计算 excel 公式 python_Python 如何添加新列_04

列表理解的解释


Pandas中的VLOOKUP

在我们的数据集中,城市在一张纸上,州/省在另一张纸上。这并不理想,但我们可以使用Excel中的VLOOKUP链接数据。VLOOKUP的工作方式与左连接类似,左数据集中的每个记录都被保留。我们告诉Excel在查找表中垂直上下查找列中的特定值,然后返回一个值,该值位于列右侧的特定列数中。

让我们添加一个名为“State”的列,并使用VLOOKUP从 States 表返回相应的状态。


计算 excel 公式 python_pandas 导入excel_05

使用VLOOKUP添加州/省信息


在Python中,我们可以使用Pandas merge函数完成相同的任务。Merge获取两个数据帧并合并它们。为此,我们将编写以下代码:

sales = pd.merge(sales, states, how='left', on='City')

让我们把这个论点一个一个地分解开来:

  • 第一个参数是原始数据帧;
  • 第二个参数是我们在中查找值的数据帧;
  • 如何指定要创建的联接类型;
  • On指定要合并的变量(如果变量在每个数据帧中被称为不同的对象,则还有left_On和right_On)。

Pandas中的数据透视表

数据透视表是Excel最强大的功能之一,它允许我们以惊人的速度提取关于大型数据集的有意义的数据。让我们根据每个城市的销售额总和创建一个数据透视表。


计算 excel 公式 python_excel in函数_06

在Excel中生成数据透视表


为此,我们只需将City字段拖到Rows部分,将Sales字段拖到Values部分。Excel自动汇总数据集中每个城市的销售额。

要在Pandas中生成相同的数据透视表,我们将编写以下代码:

sales.pivot_table(index = 'City', values = 'Sales', aggfunc = 'sum'))

我们再把这个分解一下:

  • 我们使用sales.pivot_表让Pandas知道我们要基于sales dataframe创建一个pivot表
  • 索引指定要聚合的值
  • 值指定要聚合的值
  • Aggfunc指定要使用的函数(也可以使用mean、max、min等)

最后

在本文中,我们学习了如何将Excel数据导入Pandas,如何完成IF和VLOOKUP函数,以及如何生成数据透视表。但你可能会问自己,如果你能在Excel中完成这里列出的所有工作,为什么要使用Pandas?这里没有一个明确的答案。Python允许我们生成可重用的、可跟踪的代码,使我们能够轻松地复制分析设计,Excel可能只够进行更小的分析。