首页
学习
活动
专区
圈层
工具
发布

Excel与pandas:使用applymap()创建复杂的计算列

标签:Python与Excel,pandas 我们之前讨论了如何在pandas中创建计算列,并讲解了一些简单的示例。...通过将表达式赋值给一个新列(例如df['new column']=expression),可以在大多数情况下轻松创建计算列。然而,有时我们需要创建相当复杂的计算列,这就是本文要讲解的内容。...那么,在列中对每个学生进行循环?不!记住,我们永远不应该循环遍历pandas数据框架/系列,因为如果我们有一个大的数据集,这样做效率很低。...pandas applymap()方法 pandas提供了一种将自定义函数应用于列或整个数据框架的简单方法,就是.applymap()方法,这有点类似于map()函数的作用。...图3 我们仍然可以使用map()函数来转换分数等级,但是,需要在三列中的每一列上分别使用map(),而applymap()能够覆盖整个数据框架(多列)。

6.1K10

Pandas库的基础使用系列---获取行和列

前言我们上篇文章简单的介绍了如何获取行和列的数据,今天我们一起来看看两个如何结合起来用。获取指定行和指定列的数据我们依然使用之前的数据。...我们先看看如何通过切片的方法获取指定列的所有行的数据info = df.loc[:, ["2021年", "2017年"]]我们注意到,行的位置我们使用类似python中的切片语法。...我们试试看如何将最后一列也包含进来。info = df.iloc[:, [1, 4, -1]]可以看到也获取到了,但是值得注意的是,如果我们使用了-1,那么就不能用loc而是要用iloc。...同样我们可以利用切片方法获取类似前4列这样的数据df.iloc[:, :4]由于我们没有指定行名称,所有指标这一列也计算在内了。...如果要使用索引的方式,要使用下面这段代码df.iloc[2, 2]是不是很简单,接下来我们再看看如何获取多行多列。为了更好的的演示,咱们这次指定索引列df = pd.read_excel("..

3.2K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    懂Excel轻松入门Python数据分析包pandas(二十七):按条件选择,就是这么简单

    后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas numpy.where 方法 Excel 函数中有一个初学者都能马上学会的函数——IF 函数,而在 pandas...由于需要使用 numpy 的方法,因此代码的开始需要导入 numpy 包: import pandas as pd import numpy as np ---- 场景 如下学生成绩表: 高于等于...时的返回,第三参数是当第一条件为 false 时的返回 在使用 numpy.where 方法时的逻辑与上述 Excel 的 IF 函数一致: df = pd.read_excel('data.xlsx...', 'sp1') df['res'] = np.where(df.成绩>=60,'是','否') df 行2:np.where 各个参数都能接受 pandas 的列(Series) ---- 性能优越...numpy 或 pandas 内置方法,会差上几十上百倍 ---- 总结 本文重点: numpy.where 函数的使用方式与 Excel 的 IF 函数一致

    99530

    使用Pandas实现1-6列分别和第0列比大小得较小值

    一、前言 前几天在Python白银交流群【星辰】问了一个pandas处理Excel数据的问题,提问截图如下: 下图是他的原始代码截图: 二、实现过程 其实他这个代码,已经算实现了,如果分别进行定义的话...,每一列做一个变量接收,也是可以实现效果的,速度上虽然慢一些,但是确实可行。...,如下所示: df['min'] = df[['标准数据', '测试1']].min(axis=1) print(df['min']) 后来【dcpeng】还给了一个代码,如下所示: import pandas...for i in range(1, 4): df[f'min{i}'] = df[['标准数据', f'测试{i}']].min(axis=1) print(df) 看上去确实是实现了多列比较的效果...当然这里取巧了,使用了字符串格式化。 三、总结 大家好,我是皮皮。这篇文章主要盘点了一个Pandas处理的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

    1.8K20

    在pandas中使用pipe()提升代码可读性

    而在以前我撰写的一些文章中,为大家介绍过pandas中的eval()和query()这两个帮助我们链式书写代码,搭建数据分析工作流的实用API,再加上下面要介绍的pipe(),我们就可以将任意pandas...具体来说pipe()有两种使用方式,第一种方式下,传入函数对应的第一个位置上的参数必须是目标Series或DataFrame,其他相关的参数使用常规的键值对方式传入即可,就像下面的例子一样,我们自编函数对泰坦尼克数据集进行一些基础的特征工程处理...中指定列 columns=dummy_columns, drop_first=True) )...return data # 链式流水线 ( train # 将Pclass列转换为字符型以便之后的哑变量处理 .eval('Pclass=Pclass.astype("str"...)', engine='python') # 删除指定列 .drop(columns=['PassengerId', 'Name', 'Cabin', 'Ticket']) #

    60810

    在pandas中使用pipe()提升代码可读性

    图1 而在以前我撰写的一些文章中,为大家介绍过pandas中的eval()和query()这两个帮助我们链式书写代码,搭建数据分析工作流的实用API,再加上下面要介绍的pipe(),我们就可以将任意pandas...具体来说pipe()有两种使用方式,「第一种方式」下,传入函数对应的第一个位置上的参数必须是目标Series或DataFrame,其他相关的参数使用常规的「键值对」方式传入即可,就像下面的例子一样,我们自编函数对...(data, # 先删除data中指定列 columns=dummy_columns, drop_first=True...("str")', engine='python') # 删除指定列 .drop(columns=['PassengerId', 'Name', 'Cabin', 'Ticket'])...「第二种使用方式」适合目标Series和DataFrame不为传入函数第一个参数的情况,譬如下面的例子中我们假设目标输入数据为第二个参数data2,则pipe()的第一个参数应以(函数名, '参数名称'

    49430

    1000+倍!超强Python『向量化』数据处理提速攻略

    这是一个非常基本的条件逻辑,我们需要为lead status创建一个新列。 我们使用Pandas的优化循环函数apply(),但它对我们来说太慢了。...看下面的例子: numpy.where()它从我们的条件中创建一个布尔数组,并在条件为真或假时返回两个参数,它对每个元素都这样做。这对于在Dataframe中创建新列非常有用。...现在的numpy.where(),只查看数组中的原始数据,而不必负责Pandas Series带来的内容,如index或其他属性。这个小的变化通常会在时间上产生巨大的差异。 各位!...我们可以使用它的一种方式,包装我们之前的函数,在我们传递列时不起作用的函数,并向量化它。它比.apply()快得多,但也比.where()慢了17倍。...你可以使用.map()在向量化方法中执行相同的操作。 3、日期 有时你可能需要做一些日期计算(确保你的列已经转换为datetime对象)。这是一个计算周数的函数。

    8.2K41

    【Python】已解决:(pandas读取DataFrame列报错)raise KeyError(key) from err KeyError: (‘name‘, ‘age‘)

    一、分析问题背景 在使用pandas库处理数据时,我们经常会遇到需要读取DataFrame中特定列的情况。...然而,有时在尝试访问某些列时会触发KeyError异常,这通常发生在尝试访问DataFrame中不存在的列时。...使用了错误的方式来同时访问多个列:如果你试图同时访问多个列,但方法不正确,也可能导致这个错误。...= df[('name', 'age')] # 这种方式不正确,会导致KeyError 四、正确代码示例 为了解决上述报错,你需要确保列名拼写正确,并且使用正确的方式来访问DataFrame中的列。...通过遵循上述指南和最佳实践,你可以减少在访问pandas DataFrame列时遇到KeyError的风险。

    75510

    解决KeyError: “Passing list-likes to .loc or [] with any missing labels is no long

    Pandas库进行数据处理时,我遇到了一个错误:​​KeyError: "Passing list-likes to .loc or [] with any missing labels is no longer...当我们使用列表(或其他可迭代对象)传递给.loc或[]索引器时,Pandas在查找标签时可能会遇到缺失的标签,这会导致KeyError。...然后,我们使用了方法一和方法二中的一种方式来解决​​KeyError​​错误。最后,我们打印出筛选后的订单数据。...可以使用单个标签或标签列表来选择列。...需要注意的是,在Pandas中,索引器​​.loc​​和​​[]​​可以实现更灵活的选择和筛选操作,还可以使用切片操作(如​​df.loc[:, 'column1':'column2']​​)来选择连续的行或列

    1.1K10

    【Python基础】在pandas中使用pipe()提升代码可读性

    图1 而在以前我撰写的一些文章中,为大家介绍过pandas中的eval()和query()这两个帮助我们链式书写代码,搭建数据分析工作流的实用API,再加上下面要介绍的pipe(),我们就可以将任意pandas...具体来说pipe()有两种使用方式,「第一种方式」下,传入函数对应的第一个位置上的参数必须是目标Series或DataFrame,其他相关的参数使用常规的「键值对」方式传入即可,就像下面的例子一样,我们自编函数对...(data, # 先删除data中指定列 columns=dummy_columns, drop_first=True...("str")', engine='python') # 删除指定列 .drop(columns=['PassengerId', 'Name', 'Cabin', 'Ticket'])...「第二种使用方式」适合目标Series和DataFrame不为传入函数第一个参数的情况,譬如下面的例子中我们假设目标输入数据为第二个参数data2,则pipe()的第一个参数应以(函数名, '参数名称'

    1K30

    使用DeepSeek优化Clustered索引数据列更新:技术实践与性能提升

    删除原有的行在正确的位置插入新行更新所有非clustered索引AI工具选择:DeepSeek代码助手我选择了DeepSeek代码助手作为辅助工具,因为它能够:分析SQL执行计划提供索引优化建议生成重构方案代码预测性能提升效果优化方案实施步骤...1:分析当前性能瓶颈使用DeepSeek分析执行计划:-- DeepSeek生成的诊断查询SELECT t.name AS TableName, i.name AS IndexName,...将clustered索引移到不会频繁更新的列CREATE UNIQUE CLUSTERED INDEX IX_Orders_OrderID ON Orders(OrderID)-- 2....await context.SaveChangesAsync(); } }); }}性能对比结果优化前后的性能指标对比:指标优化前优化后提升幅度平均更新耗时...索引查询性能提升:使用覆盖索引和编译查询并发控制改进:实现乐观并发和重试机制资源利用率优化:显著降低CPU和IO消耗关键教训:clustered索引的设计需要慎重考虑更新模式,频繁更新的字段不适合作为clustered

    27100

    使用Pandas完成data列数据处理,按照数据列中元素出现的先后顺序进行分组排列

    一、前言 前几天在Python钻石交流群【瑜亮老师】给大家出了一道Pandas数据处理题目,使用Pandas完成下面的数据操作:把data列中的元素,按照它们出现的先后顺序进行分组排列,结果如new列中展示...import pandas as pd df = pd.DataFrame({ 'data': ['A1', 'D3', 'B2', 'C4', 'A1', 'A2', 'B2', 'B3',...new列为data列分组排序后的结果 print(df) 结果如下图所示: 二、实现过程 方法一 这里【猫药师Kelly】给出了一个解答,代码和结果如下图所示。...for k, v in Counter(df['data']).items()], []) 运行之后,结果如下图所示: 方法三 【瑜亮老师】从其他群分享了一份代码,代码如下图所示: import pandas...这篇文章主要盘点了使用Pandas完成data列数据处理,按照数据列中元素出现的先后顺序进行分组排列的问题,文中针对该问题给出了具体的解析和代码演示,一共6个方法,欢迎一起学习交流,我相信还有其他方法,

    3.5K10

    解决Pandas KeyError: “None of )] are in the “问题

    解决Pandas KeyError: "None of [Index([…])] are in the [columns]"问题 摘要 在使用Pandas处理数据时,我们可能会遇到一个常见的错误,即尝试从...DataFrame中选择不存在的列时引发的KeyError。...,我们就会收到以下错误消息: KeyError: "None of [Index(['title', 'url', 'postTime', 'viewCount', 'collectCount', 'diggCount...你可以使用以下代码来查看df的所有列名: print(df.columns) 2. 选择存在的列 为了确保代码的健壮性,我们可以选择那些确实存在的列,而不是硬编码我们想要的列名。...总结 在使用Pandas处理数据时,我们必须确保我们尝试访问的列确实存在于DataFrame中。通过动态地选择存在的列,我们可以确保代码的健壮性,即使数据源的结构发生了变化。

    1.5K10
    领券