1、注意 - 不要尝试在迭代时修改任何对象。迭代是用于读取,迭代器返回原始对象(视图)的副本,因此更改将不会反映在原始对象上。

2、itertuples()方法将为DataFrame中的每一行返回一个产生一个命名元组的迭代器。元组的第一个元素将是行的相应索引值,而剩余的值是行值。

3、iterrows()返回迭代器,产生每个索引值以及包含每行数据的序列

4、

要遍历数据帧(DataFrame)中的行,可以使用以下函数 -

  • iteritems() - 迭代(key,value)
  • iterrows() - 将行迭代为(索引,系列)对
  • itertuples() - 以namedtuples的形式迭代行

iteritems()示例

将每个列作为键,将值与值作为键和列值迭代为Series对象。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018/5/24 15:03
# @Author : zhang chao
# @File : s.py #可以使用apply()方法沿DataFrame或Panel的轴应用任意函数,它与描述性统计方法一样,采用可选的轴参数。
# 默认情况下,操作按列执行,将每列列为数组。
import pandas as pd
import numpy as np N=20 df = pd.DataFrame({
'A': pd.date_range(start='2016-01-01',periods=N,freq='D'),
'x': np.linspace(0,stop=N-1,num=N),
'y': np.random.rand(N),
'C': np.random.choice(['Low','Medium','High'],N).tolist(),
'D': np.random.normal(100, 10, size=(N)).tolist()
})
print('-'*100)
print("for col in df:")
for col in df:
print (col)
##########################################################################
df = pd.DataFrame(np.random.randn(4,3),columns=['col1','col2','col3'])
print('-'*100)
print("for key,value in df.iteritems():")#观察一下,单独迭代每个列作为系列中的键值对
for key,value in df.iteritems():
print (key,value)
print('-'*100)
print("for row_index,row in df.iterrows():")
print("由于iterrows()遍历行,因此不会跨该行保留数据类型。0,1,2是行索引,col1,col2,col3是列索引:")
for row_index,row in df.iterrows():
print (row_index,row)
#注意 - 由于iterrows()遍历行,因此不会跨该行保留数据类型。0,1,2是行索引,col1,col2,col3是列索引。
print('-'*100)
print("for row in df.itertuples():")
for row in df.itertuples():
print (row) D:\Download\python3\python3.exe D:/Download/pycharmworkspace/s.py
----------------------------------------------------------------------------------------------------
for col in df:
A
C
D
x
y
----------------------------------------------------------------------------------------------------
for key,value in df.iteritems():
col1 0 0.477335
1 1.181332
2 1.561019
3 1.847981
Name: col1, dtype: float64
col2 0 -0.785008
1 -1.157689
2 -1.122126
3 -0.986387
Name: col2, dtype: float64
col3 0 -0.863011
1 0.907147
2 -1.100768
3 0.128576
Name: col3, dtype: float64
----------------------------------------------------------------------------------------------------
for row_index,row in df.iterrows():
由于iterrows()遍历行,因此不会跨该行保留数据类型。0,1,2是行索引,col1,col2,col3是列索引:
0 col1 0.477335
col2 -0.785008
col3 -0.863011
Name: 0, dtype: float64
1 col1 1.181332
col2 -1.157689
col3 0.907147
Name: 1, dtype: float64
2 col1 1.561019
col2 -1.122126
col3 -1.100768
Name: 2, dtype: float64
3 col1 1.847981
col2 -0.986387
col3 0.128576
Name: 3, dtype: float64
----------------------------------------------------------------------------------------------------
for row in df.itertuples():
Pandas(Index=0, col1=0.4773350765799035, col2=-0.7850081060024958, col3=-0.8630110792391069)
Pandas(Index=1, col1=1.1813320974672603, col2=-1.1576889340133183, col3=0.9071469334830587)
Pandas(Index=2, col1=1.561018528282379, col2=-1.1221261428911304, col3=-1.1007676640353743)
Pandas(Index=3, col1=1.8479811833066473, col2=-0.9863873037251529, col3=0.12857649143591193) Process finished with exit code 0

panda迭代的更多相关文章

  1. javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈

    Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...

  2. IteratorPattern(迭代子模式)

    /** * 迭代子模式 * @author TMAC-J * 聚合:某一类对象的集合 * 迭代:行为方式,用来处理聚合 * 是一种行为模式,用于将聚合本身和操作聚合的行为分离 * Java中的COLL ...

  3. JavaScript高级程序设计--对象,数组(栈方法,队列方法,重排序方法,迭代方法)

    1.使用对象字面量定义对象 var person={}; 使用这种方式创建对象时,实际上不会调用Object构造函数. 开发人员更喜欢对象字面量的语法.   2.有时候需要传递大量可选参数的情形时,一 ...

  4. python征程3.1(列表,迭代,函数,dic,set,的简单应用)

    1.列表的切片. 1.对list进行切片.'''name=["wangshuai","wangchuan","wangjingliang", ...

  5. 让产品有效迭代,前端A/B Testing的简单实现

    A/B Testing简介 互联网产品的迭代速度很快,往往一周一小发布,一月一大发布,产品提出的种种需求,哪些改动是提升产品体验的,哪些是阻碍产品进步的,如果没有数据可以参考,仅仅是靠拍脑袋的话,对产 ...

  6. JAVA中的for-each循环与迭代

    在学习java中的collection时注意到,collection层次的根接口Collection实现了Iterable<T>接口(位于java.lang包中),实现这个接口允许对象成为 ...

  7. 迭代字典中的key和value

    字典是python中十分重要的一个内容. 今天我们来谈谈,在一个 for 循环中,能否同时迭代 key和value?当然可以咯. dict 对象的 items() 方法返回的值: >>&g ...

  8. python中的迭代、生成器等等

    本人对编程语言实在是一窍不通啊...今天看了廖雪峰老师的关于迭代,迭代器,生成器,递归等等,word天,这都什么跟什么啊... 1.关于迭代 如果给定一个list或tuple,我们可以通过for循环来 ...

  9. ICP算法(Iterative Closest Point迭代最近点算法)

    标签: 图像匹配ICP算法机器视觉 2015-12-01 21:09 2217人阅读 评论(0) 收藏 举报 分类: Computer Vision(27) 版权声明:本文为博主原创文章,未经博主允许 ...

随机推荐

  1. Java内存区域划分、内存分配原理(转)

    文章引用自 http://blog.csdn.net/OyangYujun/article/details/41173747 运行时数据区域 Java虚拟机在执行Java的过程中会把管理的内存划分为若 ...

  2. nargin与varargin的用法

    nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能.通常可以用它来设定一些默认值.如下例所示: 函数文件 examp.m function fout=examp(a,b, ...

  3. MATLAB——BP神经网络

    1.使用误差反向传播(error back propagation )的网络就叫BP神经网络 2.BP网络的特点: 1)网络由多层构成,层与层之间全连接,同一层之间的神经元无连接 . 2)BP网络的传 ...

  4. 20175310 《Java程序设计》第3周学习总结

    20175310<Java程序设计>第3周学习总结 教材学习内容总结 本周学习了第四章的内容,相比前三章来说,第四章内容较多而且比较复杂,花了大量的时间学习.学习的主要内容如下: 类.方法 ...

  5. AI 支持向量机

    支持向量机(Support Vector Machine,简称SVM),属于监督学习. 核技巧(kernel trick) 名字很吓人,乍一听完全不懂什么意思,但其实它的名字是很有意义的. 1)首先, ...

  6. Objective-C 事件响应链

    苹果app使用响应者对象(responder object)来接收和处理事件.响应者对象是NSResponder及其子类的实例,如NSView.NSViewController和NSApplicati ...

  7. "system:serviceaccount:rook-ceph-system:rook-ceph-system" cannot get pods/log in the namespace "rook-ceph"

    1.kubectl logs -f   rook-ceph-operator-86776bbc44-cv5hs   -n rook-ceph-system 日志:E | op-cluster: unk ...

  8. 2-微信小程序开发(开发界面说明,按钮点击切换显示内容)

    说一个功能,大家在用微信实现控制设备的时候,是不是都在为绑定设备发愁. 我看了很多厂家的微信控制,大部分都只是可以用微信给设备配网,但是没有做用微信绑定的. 一般做绑定都是用设备的MAC地址. 这里我 ...

  9. 【LeetCode232】 Implement Queue using Stacks★

    1.题目描述 2.思路 思路简单,这里用一个图来举例说明: 3.java代码 public class MyQueue { Stack<Integer> stack1=new Stack& ...

  10. [Oracle][Corruption]发生ORA00600[kdsgrp1]的时候,如何进行调查

    本质上,这很可能是坏块引发的,所以需要调查 关联的Table 中的坏块状况: Excerpt of trace file============================*** 2017-08- ...