Python函数之iterrows(),iteritems(),itertuples()的区别说明

您所在的位置:网站首页 iteritems() Python函数之iterrows(),iteritems(),itertuples()的区别说明

Python函数之iterrows(),iteritems(),itertuples()的区别说明

#Python函数之iterrows(),iteritems(),itertuples()的区别说明| 来源: 网络整理| 查看: 265

目录iterrows(),iteritems(),itertuples()区别DataFrame数据遍历方式 iteritems iterrows itertuples迭代DataFrameiteritems()iterrows()itertuples()

iterrows(),iteritems(),itertuples()区别

Python函数之iterrows, iteritems, itertuples对dataframe进行遍历

iterrows(): 将DataFrame迭代为(insex, Series)对。iteritems(): 将DataFrame迭代为(列名, Series)对itertuples(): 将DataFrame迭代为元祖。

DataFrame数据遍历方式 iteritems iterrows itertuples

对Pandas对象进行基本迭代的行为取决于类型。在遍历一个Series时,它被视为类似数组,并且基本迭代产生这些值。其他数据结构(如DataFrame和Panel)遵循类似于字典的惯例,即迭代对象的 键 。

总之,基本的迭代产生

Series - 值DataFrame - 列标签Panel - 项目标签

迭代DataFrame

迭代DataFrame会给出列名称。让我们考虑下面的例子来理解相同的情况。

import pandas as pd import numpy as np N=20 df = pd.DataFrame({     'A': pd.date_range(start='2021-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()     }) for col in df:    print(col)

其 输出 如下

ACDxy

要迭代DataFrame的行,我们可以使用以下函数 -

iteritems() - 遍历(键,值)对iterrows() - 遍历行(索引,序列)对itertuples() - 遍历 行为namedtuples

iteritems()

将每列作为关键字值进行迭代,并将标签作为键和列值作为Series对象进行迭代。

import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(4,3),columns=['col1','col2','col3']) for key,value in df.iteritems():    print(key,value)

其 输出 如下 :

col1 0    0.2657781   -0.8146202   -2.3849113    0.525155Name: col1, dtype: float64col2 0    2.5808941   -0.4080902    0.6410113    0.591557Name: col2, dtype: float64col3 0   -0.8308601    0.4135652   -2.2511283   -0.392120Name: col3, dtype: float64

请注意,每个列在Series中作为键值对单独迭代。

iterrows()

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

import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(4,3),columns = ['col1','col2','col3']) for row_index,row in df.iterrows():    print(row_index,row)

其 输出 如下

0 col1   -0.536180col2   -0.422245col3   -0.049302Name: 0, dtype: float641 col1   -0.577882col2    0.546570col3    1.210293Name: 1, dtype: float642 col1    0.593660col2    0.621967col3    0.456040Name: 2, dtype: float643 col1    0.874323col2    0.303070col3   -0.107727Name: 3, dtype: float64

注 - 由于 iterrows() 遍历行,因此它不会保留行中的数据类型。0,1,2是行索引,col1,col2,col3是列索引。

itertuples()

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

import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(4,3),columns = ['col1','col2','col3']) for row in df.itertuples():     print(row)

其 输出 如下

Pandas(Index=0, col1=-0.4029137277161786, col2=1.3034737750584355, col3=0.8197109653411052)Pandas(Index=1, col1=-0.43013422882386704, col2=-0.2536252662252256, col3=0.9102527012477817)Pandas(Index=2, col1=0.25877683462048057, col2=-0.7725072659033637, col3=-0.013946376730006241)Pandas(Index=3, col1=0.3611368595844501, col2=-0.2777909818571997, col3=0.9396027945103758)

注 : 不要在迭代时尝试修改任何对象。 迭代是为了读取而迭代器返回原始对象(视图)的副本,因此这些更改不会反映到原始对象上。

import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(4,3),columns = ['col1','col2','col3']) for index, row in df.iterrows():    row['a'] = 10 print(df)

其 输出 如下

       col1      col2      col30  0.579118  0.444899 -0.6930091  0.479294  0.080658 -0.1266002  0.095121 -1.870492  0.5961653  1.885483 -0.122502 -1.531169

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:Python tuple方法和string常量介绍Python使用list列表和tuple元组的方法Python中的元组(Tuple)操作实例详解Python的 元组(Tuple)详解Python基础数据类型tuple元组的概念与用法Python带你从浅入深探究Tuple(基础篇)Python基础Lists和tuple实例详解


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3