来源:Python数据科学 作者:东哥起飞 大家好,我是你们的东哥。 本篇是pandas100个骚操作系列的第 7 篇:一行 pandas 代码搞定 Excel “条件格式”! 系列内容,请看?...---- 条件格式 说实话,Excel的 “条件格式” 是东哥非常喜欢的功能之一,通过添加颜色条件可以让表格数据更加清晰的凸显出统计特性。 有的朋友在想,这样的操作在python可能会很复杂。...但其实一点不复杂,而且只需一行代码即可。 为什么可以做到一行代码实现 “条件格式”? 一是使用了pandas的style方法,二是要得益于pandas的链式法则。...3、让所有缺失值都高亮出来,可使用highlight_null,表格所有缺失值都会变成高亮。 df.style.highlight_null() ?...当然,如果你希望加更多的条件格式效果,还可以继续让链式更长,但不论条件怎么多,都只是一行代码。
为了巩固我对这些理念的理解和便于你们在 StackOverFlow 进行搜索,这里我整理出了我在使用 Python,Numpy,Pandas 中的一些知识点。...幸运的是,Python 内置了一种名为列表推导式的方法,这种方法仅仅使用一行代码就可以解决这个问题。列表推导式刚开始对你来说可能有些困难,但是你一旦熟悉,你就会经常使用。 ?...lambda 函数可以解决这个问题!Lambda 函数在 Python 中通常被用来构建应用次数比较少的的匿名函数。也就是让你构建一个了不带名字的函数。...从上面的代码中,你可以推断出,如果对列进行操作需要将 axis 设置为 1,对行操作则将其设置为 0。但这是为什么呢?...Apply 函数会对你指定的列或行中每个元素作用一个函数。你可以想象到这是多么有用,尤其式当你对整个 DataFrame 列进行归一化和元素值操作,而不必进行循环。
df.join 有个前提,把2个表的关联key的列设置为行索引 merge 则使用普通的列作为关联key 我这里生成的key 是唯一的。...这样子我们才能进入 pandas 源码里面 接着,在 merge 函数那一行打开一个断点 执行调试 代码会停在断点的行,接着我们要点击控制菜单中的下一步(也可以用快捷键)。...为什么?显然,有什么东西在第二次运行的时候,得到了优化。 在之前的源码调试中,我们得知,其实两个表按行索引关联,最核心的计算就是行索引对象的 join 函数。...按这个原理以及之前的调试方式,可以找到一个属性。具体过程我就不再啰嗦了,直接给出验证结果: 在 join 的过程中,有一个判断逻辑,如果行索引的值都是唯一的,那么会进行一些操作。...道理很简单, pandas 怎么可以知道一个行索引的值是否唯一?显然要遍历一次数据。这个过程在大量数据的时候成本很高。由于索引对象是不可变的,所以可以缓存结果。
再看一些类似教条式的规范: 为什么不要用 list 、range 等等这些作为变量名字? 为什么自定义函数中的默认值参数,不要用 列表 等可变类型? 本文的内容能帮助你理解这些知识点。...本文不是讲解如何定义变量,也不打算按照市面上的教程逻辑讲解,希望我能让你对变量带来一些新的理解。 ---- 为什么变量这么重要 如下代码生成了一个列表: 执行过程中,这里面到底发生了什么事情?...这让自定义函数与普通的列表没有多大区别。...比如,在 pandas 中到处可见这种情况: 任何的现代编程语言,基本都具备这种把函数到处传递的机制 ---- 刚刚说到,自定义函数里面的代码作为数据被保存在函数对象中。...]) ,因此进入行2时,data.append 是针对行6生成的列表对象 行7:与行5同理,行2是对参数 data的默认列表对象操作 ---- 导入包也是在定义变量 平时导入 pandas 或 numpy
在Python语言应用生态中,数据科学领域近年来十分热门。作为数据科学中一个非常基础的库,Pandas受到了广泛关注。Pandas可以将现实中来源多样的数据进行灵活处理和分析。...01 Pandas是什么 很多初学者可能有这样一个疑问:“我想学的是Python数据分析,为什么经常会被引导到Pandas上去?”虽然这两个东西都是以P开头的,但它们并不是同一个层面的东西。...当时我对项目叫什么名字并不太在乎,由于我是《蒙提·派森的飞行马戏团》的狂热爱好者,我就选择了用Python作为项目的名字。...Pandas可以实现非常震撼的可视化效果,它对接众多令人赏心悦目的可视化库,可以实现动态数据交互效果。...在Jupyter Notebook中导入Pandas,按惯例起别名pd: # 引入 Pandas库,按惯例起别名pd import pandas as pd 这样,我们就可以使用pd调用Pandas的所有功能了
当使用 Python 字典的列表时,字典的键将被用作列标题,每个列表中的值将作为 DataFrame 的列。...请使用head()方法,并将所需的行数(在本例中为 8)作为参数。...记住 在选择数据子集时,使用方括号[]。 在这些括号内,您可以使用单个列/行标签、列/行标签列表、标签切片、条件表达式或冒号。 使用loc选择特定行和/或列时,请使用行和列名称。...当特别关注表中位置的某些行和/或列时,请在选择括号[]前使用iloc运算符。 在使用loc或iloc选择特定行和/或列时,可以为所选数据分配新值。...记住 在选择数据子集时,使用方括号[]。 在这些括号内,您可以使用单个列/行标签、列/行标签列表、标签切片、条件表达式或冒号。 使用loc选择特定行和/或列时,请使用行和列名称。
一行代码创建列表 每次需要定义某种列表时都要编写一个for循环,这是一件乏味的事情,幸运的是Python有一种内置的方法可以在一行代码中解决这个问题。...for循环进行列表理解,以及如何使用一行简单的代码创建列表,而不需要使用循环。...Lambda函数用于在Python中创建小型的、一次性的和匿名的函数对象。基本上,它们让你创建一个函数,而不是创建一个函数。...根据上面的推导,如果要处理列,可以将轴设置为1,如果要处理行,可以将轴设置为0。但这是为什么呢?...zip函数 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
\io\excel\_base.py文件中的290行-350行。...图片5、自定义缺失值这种使用的场景是什么呢?比如在收集信息的时候据时候,发现有人填的年龄是负数,那就自动给他把年龄清空掉,让他重新填写。...:我们的表格里,有个人的名字叫:庞强我们不想显示这个人的名字于是我们就在na_values指定:name这一列是庞强的名字,置为空,在pandas里空值会用NaN表示。...图片6、处理Excel里的注释行不仅Python是可以写注释的,Excel也是可以写注释的。很多人没有用过,用过的朋友在评论区说一下你为什么给Excel写注释吧~?...最近使用pandas比较多,正好pandas也可以处理excel,所以近期会持续的更新一些pandas使用的文章。下一篇想看什么,在评论区告诉我吧
所有对象都能作为字典的键吗? 集合内的元素可以为任意类型吗? 什么是可哈希类型?举几个例子 求集合的并集、差集、交集、子集的方法? 怎么找出字典的最大键? 如何求出字典的最大值?...给定 n 个集合,如何使用 max 函数求出包含元素最多的集合? 找出字典前 n 个最大值对应的键 怎么一行代码合并两个字典?...lambda 函数的形参和返回值使用案例 多用 NamedTuple ,让代码更可读 Counter 计数的功能非常好用 使用 DefaultDict 自动创建一个被初始化的字典 使用装饰器太魔幻,始终不知道怎么使用...求两个特征的相关系数 如何找出 NumPy 中的缺失值、以及缺失值的默认填充 Pandas 的 read_csv 30 个常用参数总结,从基本参数、通用解析参数、空值处理、时间处理、分块读入、格式和压缩等...Pandas 使用 apply(type) 做类型检查 Pandas 使用标签和位置选择数据的技巧 一个快速清洗数据的小技巧,在某列上使用 replace 方法和正则,快速完成值的清洗。
开发需求 这个单子的要求,是使用 Python 中的 matplotlib 库绘制动态的折线图,需求描述虽然很简单易懂,但是也要好好分析一下。...只需要一行代码 pandas.read_excel('data.xls'),就可以把 excel 文件加载到内存。...'> 对象,可以直接遍历每行的数据,也可以格式转化成列表类型。...动图新思路 按照上面的思路完成各个需求细节之后,我就把代码提交给了 zhenguo 老师,老师不仅给予了肯定和鼓励,还提供了一个新的思路。 也就是使用 Matplotlib 中的动画模块来画动态图。...而且这个类用起来很方便,在构建函数中传入 figure 对象、更新图表的函数、初始化函数和间隔参数就行了。
---- 能生成 pandas 代码的数据浏览工具 这是一个能让你通过简单操作,即可对数据进行各种操作的小工具,如下动图: 可以指定文件路径 可以指定各种基本操作,比如筛选、分组、统计等等 当然也可以让你编写代码...首先打开 myproject.py 文件,自定义一个函数: 行1,2:导入需要的库 行6-11:加载数据的自定义函数,其中的逻辑非常简单,使用 pandas 加载数据,返回结果即可 行4:@xw.func...从步骤上来说: 定义 Python 自定义函数(在文件 myproject.py 中) 点击"导入函数"的按钮(在 Excel 文件 myproject.xlsm 中) 那么为什么需要点击 "导入函数"...中的代码: 我们希望返回结果的前10行 修改后,保存一下此 Python 文件,在 Excel 上无须点击"导入函数"按钮,只要公式有刷新(比如修改公式引用到的单元格的值),就能看到最新结果: 只有...如果你是制作工具给别人使用的情况下,就需要知道代码变动后,哪些文件(Excel或Python文件)需要更新 ---- 进一步完善 首先,我们希望返回结果不要把 DataFrame 的行索引输出: 这可以通过装饰器的参数设置
假如我是个旱鸭子,想去学游泳,教练很认真的给我剖析了蛙泳的动作,扶着我的腰让我在水里划拉了5分钟,接着马上给我讲解了蝶泳,又是划拉了5分钟,然后又硬塞给我潜泳的姿势,依然是划拉5分钟。...最后,教练一下子把我丢进踩不到底的泳池,给我呐喊助威。 作为一个还没入门的旱鸭子,教练倾囊授了我3种游泳技巧,让我分别实践了5分钟。这样做的结果就是我哪一种游泳技巧也没学会,只学会了喝水。...别忘了,第一步一定是先导入我们的库——import pandas as pd 构造DataFrame最常用的方式是字典+列表,语句很简单,先是字典外括,然后依次打出每一列标题及其对应的列值(此处一定要用列表...温馨提示:使用Pandas时,尽量避免用行或者EXCEL操作单元格的思维来处理数据,要逐渐养成一种列向思维,每一列是同宗同源,处理起来是嗖嗖的快。...第四步,对数据有了基础了解,就可以进行简单的增删选改了。 第五步,在了解基础操作之后,对Pandas中基础数据类型进行了初步照面。
,这些名字称为列(索引),因此,在 dataframe,我更愿意将 index 称为行索引,以此和列索引区分开。...而用 iloc[],对应的代码如下: df.iloc[0,3] = 100 print(df,'\n') iloc[] 是根据位置查询的,和行索引、列索引没有一点儿关系,这也是我为什么事先修改行索引的缘故...这里我纠正一下我上篇文章中的错误之处:series.values 或 series.unique() 返回的并不是列表,虽然打印结果像列表(因为对 __str__()函数进行了重载),但实际上却是 ndarray...series 上次漏说了一个重要的操作 apply():对列上的数据作处理,它可以使用 lambda 表达式作为参数,也可以使用已定义函数的函数名称(不需要带上())作为参数,比如我们让每个人的每门课成绩加减...至此,pandas 中两种基本数据结构说完了,下一篇来谈谈 pandas 中各种读写文件函数的坑。
fr=aladdin')[1] 按单个条件筛选数据框架 从世界500强列表中选择中公司,我们可以使用.loc[]来实现。注意,这里使用的是方括号而不是括号()。...此数据框架包括原始数据集中的所有列,我们可以将其作为一个独立的表(数据框架)使用,而不需要额外的步骤(例如,如果我们在Excel中进行筛选后,需要将其复制到另一个工作表或删除其他行以使其成为“一个表”)...上面的代码行翻译为:对于每一行,如果“总部所在国家”是“中国”,则评估为Ture,否则为False。 为了更好地形象化这个思想,让我展示一下在Excel中它是什么样子。...看看下面的Excel屏幕截图,添加了一个新列,名为“是否中国”,还使用了一个简单的IF公式来评估一行是否“总部所在国家”为中国,该公式返回1或0。实际上,我正在检查每一行的值。...完成公式检查后,我可以筛选”是否中国”列,然后选择值为1的所有行。 图3 Python使用了一种类似的方法,让我们来看看布尔索引到底是什么。 图4 注意上面代码片段的底部——长度:500。
为了一劳永逸地巩固我对这些概念的理解,并为大家免去一些StackOverflow的搜索,我在文章中整理了自己在使用Python,NumPy和Pandas时总是忘记的东西。...单行List Comprehension 每次需要定义某种列表时都要写for循环是很乏味的,好在Python有一种内置的方法可以用一行代码解决这个问题。...Lambda函数用于在Python中创建小型的,一次性的和匿名的函数对象。基本上,它们可以让你“在不创建新函数的情况下”创建一个函数。...你可以从上面看出,如果要处理列,就将axis设为1,如果要处理行,则将其设为0。 但为什么会这样呢?...我希望我介绍的这些在使用Python做数据科学时经常遇到的重要但又有点棘手的方法、函数和概念能给你带来帮助。 而我自己在整理这些内容并试图用简单的术语来阐述它们的过程中也受益良多。
领取专属 10元无门槛券
手把手带您无忧上云