DataFrame.iterrows的一种用法
import pandas as pd
import numpy as np
help(pd.DataFrame.iterrows)
Help on function iterrows in module pandas.core.frame:
iterrows(self)
Iterate over DataFrame rows as (index, Series) pairs.
Notes
-----
1. Because ``iterrows`` returns a Series for each row,
it does **not** preserve dtypes across the rows (dtypes are
preserved across columns for DataFrames). For example,
>>> df = pd.DataFrame([[1, 1.5]], columns=['int', 'float'])
>>> row = next(df.iterrows())[1]
>>> row
int 1.0
float 1.5
Name: 0, dtype: float64
>>> print(row['int'].dtype)
float64
>>> print(df['int'].dtype)
int64
To preserve dtypes while iterating over the rows, it is better
to use :meth:`itertuples` which returns namedtuples of the values
and which is generally faster than ``iterrows``.
2. You should **never modify** something you are iterating over.
This is not guaranteed to work in all cases. Depending on the
data types, the iterator returns a copy and not a view, and writing
to it will have no effect.
Returns
-------
it : generator
A generator that iterates over the rows of the frame.
See also
--------
itertuples : Iterate over DataFrame rows as namedtuples of the values.
iteritems : Iterate over (column name, Series) pairs.
运用iterrows()返回的index和row,其中index是行索引,row是包含改行信息的Series的迭代器。运用这个方法,可以一行一行的增加特殊要求的列(前提是首先初始化该特殊要求的列)
xx=np.random.randint(9,size=(6,3))
tests=pd.DataFrame(xx,columns=['one','two','three']);tests
| one | two | three | |
|---|---|---|---|
| 0 | 3 | 0 | 4 |
| 1 | 1 | 0 | 3 |
| 2 | 1 | 4 | 4 |
| 3 | 7 | 3 | 2 |
| 4 | 7 | 5 | 0 |
| 5 | 5 | 8 | 8 |
现在我们想加上一列,这一列的要求如下:如果同行的'one'+'two'+'three'是奇数,则写上奇数,如果是偶数,则写上偶数。
tests['special']='ini'
for index,row in tests.iterrows():
num=(row.values[:-1]).sum()
if num%2 :
row['special']='奇数'
else:
row['special']='偶数'
tests.loc[index]=row #将Series 迭代器row赋值给tests的index行
tests
| one | two | three | special | |
|---|---|---|---|---|
| 0 | 3 | 0 | 4 | 奇数 |
| 1 | 1 | 0 | 3 | 偶数 |
| 2 | 1 | 4 | 4 | 奇数 |
| 3 | 7 | 3 | 2 | 偶数 |
| 4 | 7 | 5 | 0 | 偶数 |
| 5 | 5 | 8 | 8 | 奇数 |
DataFrame.iterrows的一种用法的更多相关文章
- using 的三种用法
using 有哪三种用法? 1)引入命名空间. 2)给命名空间或者类型起别名. 3)划定作用域.自动释放资源,使用该方法的类型必须实现了 System.IDisposable接口,当对象脱离作用域之后 ...
- c++ operator操作符的两种用法:重载和隐式类型转换,string转其他基本数据类型的简洁实现string_cast
C++中的operator主要有两个作用,一是操作符的重载,一是自定义对象类型的隐式转换.对于操作符的重载,许多人都不陌生,但是估计不少人都不太熟悉operator的第二种用法,即自定义对象类型的隐式 ...
- Wix 安装部署教程(十五) --CustomAction的七种用法
在WIX中,CustomAction用来在安装过程中执行自定义行为.比如注册.修改文件.触发其他可执行文件等.这一节主要是介绍一下CustomAction的7种用法. 在此之前要了解InstallEx ...
- Android Intent的几种用法全面总结
Android Intent的几种用法全面总结 Intent, 用法 Intent应该算是Android中特有的东西.你可以在Intent中指定程序要执行的动作(比如:view,edit,dial), ...
- Js闭包常见三种用法
Js闭包特性源于内部函数可以将外部函数的活动对象保存在自己的作用域链上,所以使内部函数的可以将外部函数的活动对象占为己有,可以在外部函数销毁时依然存有外部函数内的活动对象内容,这样做的好处是可 ...
- operator 的两种用法
C++,有时它的确是个耐玩的东东,就比如operator,它有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换).1.操作符 ...
- Service的两种用法及其生命周期
先来一点基础知识: Service 是android的四大组件之一,与Activity同属于一个级别,它是运行在后台进行服务的组件(例如在后台播放的音乐,播放音乐的同时并不影响其他操作).Servic ...
- C#中this的 四种 用法
C#中的this用法,相信大家应该有用过,但你用过几种?以下是个人总结的this几种用法,欢迎大家拍砖,废话少说,直接列出用法及相关代码. this用法1:限定被相似的名称隐藏的成员 /// < ...
- js正则表达式中的问号几种用法小结
这篇文章主要介绍了js正则表达式中的问号几种用法,比如+?,*?,{2,3}?可以停止匹配的贪婪模式,感兴趣的朋友可以参考下 在表示重复的字符后面加问号,比如+?,*?,{2,3}?可以停止匹配的贪婪 ...
- .NET(c#)new关键字的三种用法
前几天去家公司面试,有一道这样的题:写出c#中new关键字的三种用法,思前想后挖空心思也只想出了两种用法,回来查了下msdn,还真是有第三种用法:用于在泛型声明中约束可能用作类型参数的参数的类型,这是 ...
随机推荐
- 什么是极限编程 (XP)?
极限编程(XP) 是2000 年代初期最广为人知和使用最多的敏捷方法之一.XP 是Kent Beck.Ron Jeffries和Ward Cunningham的创意,基于他们在戴姆勒克莱斯勒的集体经验 ...
- MediaToolkit:.NET 开发者的多媒体处理工具
MediaToolkit:.NET 开发者的多媒体处理工具 在开发过程中处理音频和视频文件是许多应用程序的重要功能.MediaToolkit 是一个强大的 .NET 库,帮助开轻松处理这些多媒体文件. ...
- 记录WPS接入AI大模型
进入官网下载海鹦OfficeAI:https://www.office-ai.cn/ 安装OfficeAI 勾选打开一个测试表格看看是否已经安装成功 打开有些人的会弹出这个提示,点击进行管理,然后点击 ...
- 移动端 web 调试神器 - Eruda
移动端 web 调试神器 - Eruda 移动端 web 调试神器 - Eruda 基本使用 效果预览 核心步骤 安装依赖 yarn add vite-plugin-html -D # or npm ...
- HIVE将长整数转字符串的错误
有一个超长字符串,比如:441066000000001005712973,原来存放在HIVE里表A 是用DECIMAL(24)类型.现在要与另外一个用string类型保存这个字段的表B关联,老是失败. ...
- ESXi、PVE、unRaid对比
目录 收起 [前言] [概述] [系统安装] [系统资源占用] [创建/编辑虚拟机] [硬盘直通] [PCI硬件直通] [显卡直通] [虚拟光驱] [自动开机.关机] [网络管理] [稳定性] [CP ...
- Sa-Token v1.41.0 发布 🚀,来看看有没有令你心动的功能!
Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证.权限认证.单点登录.OAuth2.0.微服务网关鉴权 等一系列权限相关问题. 目前最新版本 v1.41.0 已推送至 Mav ...
- Delphi 使控件变成圆角的方法
procedure RoundControl(Control: TWinControl; arc1, arc2: Integer); var R: TRect; Rgn: HRGN; begin wi ...
- 小白必看的java完整下载攻略!(在Typora中有图片参考)
Java下载 在浏览器上搜索JDK(2024年最新版是22,本人下载的是21) 点击官网下载,会跳到Oracle官网,需要注册账号才可下载 根据自己的电脑型号选择下载(本人下载的是64的) 正常情况下 ...
- leetcode每日一题:对角线上不同值的数量差
题目 2711. 对角线上不同值的数量差 给你一个下标从 0 开始.大小为 m x n 的二维矩阵 grid ,请你求解大小同样为 m x n 的答案矩阵 answer . 矩阵 answer 中每个 ...