变量不在选择列表中_神奇的Python!仅需一行代码,轻松实现Excel中的3大高级功能!...

点击上方“爱好Python的胡同学”,选择“星标”公众号

每晚八点,Python干货,不见不散!d3b19e44269cdd2e5ea29c570f3b19e8.png

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

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

import pandas as pd
sales = 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中的数据进行比较:

800f21ed953ec47da031b2b8fa954c56.png

比较数据在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")

dca54ff7b2745cd72e80c906de0d5065.png

在Excel中应用IF函数

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

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

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

b398ded09a93762ae69ff6ed4e216bf3.png
列表理解的解释

二.Pandas中的VLOOKUP

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

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

87efebe73d74edde2568b7738a54d56a.png

使用VLOOKUP添加州/省信息

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

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

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

  • 第一个参数是原始数据帧;

  • 第二个参数是我们在中查找值的数据帧;

  • 如何指定要创建的联接类型;

  • On指定要合并的变量(如果变量在每个数据帧中被称为不同的对象,则还有left_On和right_On)。

三.Pandas中的数据透视表

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

9a813bdbb6a489f46ae3f49586549311.png

在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可能只够进行更小的分析。

原文链接:towardsdatascience.com/ 翻译:未艾信息(weainfo.net)

c13e0964c6cbd115164ec98c9eecc0ec.png e02ae73de1f44394634112c74da04d85.png

扫码关注,

每晚八点,Python日报,不见不散!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值