pandas整表写入excel指定位置_当Python遇到Excel,一个能打的都没有~

dc154da3b815908562525158bab6cfc9.png

几乎人人都在用Excel,这种极易上手的数据分析工具无处不在,一旦你掌握了窍门,它就变得非常强大。而Python通常被认为更具有挑战性,但能做的事也更多。

当Python遇到Excel会发生什么?本文将告诉你,这三项Excel日常任务,如何用Python轻松搞定。

首先导入Pandas并根据工作簿中可用的工作表加载两个dataframe,称它们为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')

调用dataframe的head()方法,如下所示:

print(sales.head())

与Excel进行对比:

19dcfea34348215c40f14937efd81f81.png

可以看到Pandas和Excel显示的数据是比较相似的,但是有一些关键的区别:

· Excel从A开始用字母标记列,而Pandas用变量名称

· Excel起始行数为1,而Pandas起始行数(“索引”)为0

那么要如何使用Pandas来完成Excel任务呢?

Pandas的数据透视表

数据透视表是Excel最强大的功能之一,用户可以难以置信的速度从大型数据集中提取有意义的数据。来创建一个关于每个城市销售总额数据透视表:

d911c937281282885ad56e0af223c550.png

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

编写以下代码,Pandas可以实现相同的数据透视表:

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

它是怎样实现的呢:

1.sales.pivot_table告知Pandas基于sales的dataframe创建数据透视表index指定了要聚合的项目

2.values指定了要聚合的值

3.aggfunc指定了使用的函数(还要用到mean、max、min等)

154bd34e2cf0b91e1eda7e2ba683e816.png

Python中的if函数

Excel中使用IF函数非常方便,可以根据另一个单元格中的条件应用特定的标签。假设要创建一个新列来告知列B中单元格的值是否大于500。在Excel中,将列E标记为大于500,然后进入单元格E2并写入:

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

33e02a64d7fb20cf84147bccee4debde.png

换成Python,可以使用列表生成式轻松地应用相同的if语句:

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

列表生成式非常适合这类工作,不用再编写复杂if/else语句,你可以更快写出更整洁的代码。

Pandas中的VLOOKUP

在数据集中,一个表上有城市,另一个表上有州/省。这并不理想,但是可以在Excel中使用VLOOKUP来链接数据。VLOOKUP的工作方式类似于左联接,即保留左数据集中的所有记录。让Excel上下垂直查找表中的特定值,然后返回一个值,该值位于它右边的某一列中。

增加一个名为“State”的列,使用VLOOKUP从states表中返回相应的州。

59efb35645148669a27fc548705236c0.png

在Python中,可以使用Pandas的merge函数来完成相同的事情。merge函数获取两个dataframe并将它们合并。代码如下:

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

让我们逐步来看看它:

1.第一个参数是原始dataframe

2.第二个参数是查找值所在的dataframe

3.how指定要创建的连接类型

4.on指定了想要合并的变量(如果在每个dataframe中变量名不同,还可以用left_on和right_on)

febc83e104c6dd2e6a33a73fdb7321d1.png

你可能会问,既然Excel中可以做到,为什么还要使用Pandas呢?Python能够生成可重用的、可跟踪的代码,我们能够轻松地复制分析设计。

对于较小的分析来说,Excel可能就足够了。但给何妨Pandas一个机会,或许你会打开一个新世界。

dc17b1512f04a2156194e07d5c36222b.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/347976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无需再忙了:Lambda-S3缩略图,由SLAppForge Sigma钉牢!

如果你还没有注意到了,我最近被唠叨试图开始使用时,我遭遇了陷阱AWSλ-S3正式例子 。 虽然大多数这些愚蠢的错误的指责是对我自己的懒惰,过度自尊和缺乏对细节的关注,我个人觉得,在开始与一家领先的无服务器供应商不应…

sqlyog设置自动补全_Visual Studio Code 最好的功能、插件和设置

Visual Studio Code 是由 Microsoft(微软) 发布的一个免费的,开源的跨平台文本编辑器。他们基于在线编辑 Visual Studio Online (代号为 “Monaco”),并结合 GitHub 的 Electron 实现的一个跨平台编辑器。他们在为程序员创建一个快速且高效工作环境方面取…

ejb 示例 2018_Java EE EJB拦截器教程和示例

ejb 示例 2018在此示例中,我们将看到如何在EJB中使用拦截器并使用简单的Web应用程序对其进行测试。 1.简介 顾名思义,当您想拦截对EJB方法的调用时,将使用拦截器。 如果为Bean声明一个拦截器,则每次调用该Bean的方法时&#xff0…

linux怎么使用串口线,如何在Linux下使用USB转串口线,鼎力告诉您

亲爱的朋友,如果您使用的Linux的系统,应该怎么来使用我们的鼎力的USB转串口线呢?下面就来告诉您吧!用Linux,不需要另外安装USB转串口驱动!前提是你要先安装minicom输入命令:dmesg| grep usb,看到…

comsol分析时总位移代表什么_超弹性材料模型的压缩分析

为了表征超弹性材料,需要进行各种测试获取实验数据,包括承受单轴拉伸和压缩、双轴拉伸和压缩以及扭转测试。今天,我们向大家介绍如何使用通过单轴和双轴测试获得的拉伸和压缩测试数据,模拟由弹性泡沫材料制成的球体的压缩。通过案…

由对称性知定点一定在x轴上_线上优秀教学案例(九)|计算机科学与工程学院刘钊:“延期不延教”之“1+X课堂”...

【编者按】受新冠肺炎疫情影响,按照教育部和河北省教育厅统一部署,学校延迟春季开学时间。为最大程度减少疫情和延期开学对我校教育教学工作的影响,本学期,我校以线上教学的形式拉开序幕。面对新的教学模式,各学院、广…

和显卡驱动要配套吗_天天学渲染,你的显卡驱动用对了吗?

大家好,最近一直有很多人和我反馈说,自己在使用Octane或者Redshift渲染器渲染的时候经常容易崩溃,甚至是闪退了,其实这个问题有很大一部分原因是由于你的显卡驱动没用对导致的。接下来就和大家说下如何解决。首先我们大部分人买了…

网络研讨会:Java 9的第一印象–构建可伸缩企业应用程序的新方法

在此网络研讨会上听我们对新Java版本的一些初步想法 Java 9的新版本引起了很多炒作。在Mark Reinhold领导的专门团队的带领下,将Java平台迁移到模块花费了近十年的辛苦工作。 除了备受期待的Project Jigsaw,此版本还包含许多其他令人兴奋的功能。 现在是…

noj数据结构稀疏矩阵的加法十字链表_一个算法毁了一款好游戏?算法和数据结构到底有多重要?...

来源 | 异步前段时间大火的国产游戏——《太吾绘卷》,由于创新的玩法和精良的制作一度广受好评,然而随着玩家游戏的深入和时长的积累,发现该游戏在玩的过程中游戏外的问题很多很多。首先是存档速度慢,然后是密集的计算导致功耗大量…

arm-linux-gcc libstdc .so.6,mini2440编译内核:usr/lib/libstdc++.so.6 not found

买了块mini2440开发板,按照光盘中的mini2440用户手册编译内核时,#make zImage出现错误:usr/lib/libstdc.so.6 not found,在网上百度了下,有很多不同的解决办法,我试了一个,编译成功 ^ ^注&#…

前端实现可绘制的canvas画布_前端图形学基础(五)——Canvas状态管理

点击右上角的关注,不定期前端干货分享!!欢迎来到我的前端图形学系列文章:前端图形学基础(一)——Canvas基础入门前端图形学基础(二)——Canvas基础前端图形学基础(三)——Canvas绘制图片前端图形学基础(四)——Canvas绘制曲线我们…

having和where可以同时使用吗_阴、阳离子聚丙烯酰胺可以同时混合溶解使用吗?...

聚丙烯酰胺是一种水处理药剂,需要溶解在水中制成浓度为0.1%-0.5%的聚丙烯酰胺水溶液。一般来说,当聚丙烯酰胺实际使用时,阴离子聚丙烯酰胺和阳离子聚丙烯酰胺可以同时使用。但是,阳离子聚丙烯酰胺和阴离子聚丙烯酰胺不能混合在一起…

Lombok,AutoValue和Immutables,或如何编写更少,更好的代码返回

在上一篇有关Lombok库的文章中 ,我描述了一个库,该库有助于处理Java中的样板代码( 是的,我知道这些问题已经在Kotlin中解决了 ,但这是现实生活,我们不能一味地坐下来,一旦出现较新或更简单的语言…

福州PHP讲师招聘_“艺”起就业|招聘信息汇总

亲爱的美术学院毕业生们在全国上下万众一心抗击新冠肺炎疫情的关键时期学院党委高度重视并时刻关注着每一位毕业生的就业工作为进一步做好疫情防控工作也为进一步确保同学们顺利求职就业保障毕业生就业工作的时效性学院公众号特别设立“艺”起就业—招聘信息发布栏目 由院学工…

哪个app最费电_关于石墨烯养生地暖,业主最关心的几大问题,答案附上!

很多人对石墨烯地暖有些许误解,不敢轻易接受。其实不然,石墨烯地暖是一种供热效果好、安全性高、运用寿命长、节能环保的新型健康采暖方式,不仅适用于住宅小区、别墅等家庭采暖,也可用于办公楼、医院等各类公共建筑采暖。在众多对…

cpu 抖动_微抖动,繁忙的等待和绑定CPU

cpu 抖动性能分析新机器 当我在新机器上工作时,我想了解它的局限性。 在这篇文章中,我将研究机器的抖动以及忙于等待本周末构建的新PC的影响。 该机器的规格很有趣,但不是发布目的。 永远不要少于它们: i7-3970X六核运行于4.5 GH…

两端分散对齐怎么设置_Word文字很难对齐?用这4个方法,2秒可对齐所有文字!...

日常工作中,我们在给Word文档进行对齐操作的时候,很多人都是猛敲空格键来对齐文字,通常是一顿操作猛如虎,仔细一看原地杵。简单的文字对齐,这种方法可能还算凑效,但稍显复杂的就不那么管用了。今天叨叨君就…

怎样学c++程序语言,如何学好 C++——学习门槛最高的编程语言

根据InfoQ 编程语言 2 月排行榜,统计发现,学习门槛最高的编程语言是 C。那么如何学好这门又难、门槛又高的语言呢?前面我们介绍过C。C是一种面向对象的计算机程序设计语言,由美国AT&T贝尔实验室的本贾尼斯特劳斯特卢普博士在2…

首个JDK 10(18.3)发行候选版(内部版本43)展示了新的版本控制方案

Mark Reinhold的帖子“ JDK 10:First Release Candidate ”宣布“内部版本43中没有未解决的P1错误”,并将Build 43命名为最初的JDK 10版本候选 。 Reinhold帖子还指向“ JDK 10 Early Access Builds ”页面,该页面包含发行说明的链接。 到基于…

7 centos 查看程序文件数量_CentOS之使用Systemd添加自定义系统服务

文章引言Systemd 就是为了解决Linux 的启动一直采用init进程问题而诞生的。它的设计目标是,为系统的启动和管理提供一套完整的解决方案。根据 Linux 惯例,字母d是守护进程(daemon)的缩写。 Systemd 这个名字的含义,就是…