许昌网站开发哪家好,室内设计学校网站,个人申请注册公司需要多少钱,生成图片链接的网站前言
在 pandas 中#xff0c;向量化计算是指利用 pandas 对象的内置方法和函数#xff0c;将操作应用到整个数据结构的每个元素#xff0c;从而在单个操作中完成大量的计算。 但在一些需求中#xff0c;我们无法使用向量化计算#xff0c;就需要迭代操作#xff0c;本例…前言
在 pandas 中向量化计算是指利用 pandas 对象的内置方法和函数将操作应用到整个数据结构的每个元素从而在单个操作中完成大量的计算。 但在一些需求中我们无法使用向量化计算就需要迭代操作本例就是这样的一种情况。
需求
第一行的值为所在行的 a b第二行及以后的值为 上一行的 c a
思路 本例不是一个向量化的计算因为第一行的计算逻辑与其他行的计算逻辑不同。针对这样的情况我们可以用迭代的方法进行灵活的操作。 先根据第一行的计算逻辑增加 c 列然后迭代并排除第一行对其他行按计算逻辑进行修改。
二、使用步骤
读入数据
代码如下示例
import pandas as pddf pd.DataFrame({a: [5, 6, 7], b: [3, 5, 8]})
df# 按第一行的计算逻辑增加 c 列
df[c] df.adf.b
df# 迭代计算修改其他行
# 遍历df的每一行返回一个命名元组命名元组的字段包括Index和DataFrame中的各列
for i in df.itertuples():if i.Index ! 0:df.loc[i.Index, c] i.a df.loc[i.Index-1, c] # 当前行的a列值与上一行的c列值相加并将结果赋值给当前行的c列# 以上代码df.itertuples() 产生一个可迭代 map 对象每行是一个 namedtuple 类型数据。即for i in df.itertuples():print(i)# 接着判断如果索引不是第一行值为 0就用 loc 获取定位并进行修改最后得到的数据为df总结
以上就是今天要讲的内容本文仅仅简单介绍了pandas的使用而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。