Python Pandas 迭代
基本迭代Pandas对象的行为取决于类型。当迭代Series时,它被视为类似于数组的对象,基本迭代会产生值。其他的数据结构,比如DataFrame和Panel,会遵循以迭代对象的键为约定的“类似于字典”的方式。
简而言之,基本迭代(for i in object)产生以下结果−
- Series - 值
-
DataFrame - 列标签
-
Panel - 项标签
迭代DataFrame
迭代一个DataFrame会产生列名。我们来看下面的例子来理解这一点。
它的 输出 如下-
要遍历DataFrame的行,我们可以使用以下函数:
- iteritems() - 遍历(键,值)对
-
iterrows() - 以(索引,系列)对的形式遍历行
-
itertuples() - 以namedtuples的形式遍历行
iteritems()
以标签作为键,以列值作为Series对象进行遍历每一列的键值对。
它的 输出结果 如下:
观察下面的代码,每一列都以键值对的形式在Series中被迭代处理。
iterrows()
iterrows() 返回一个迭代器,它同时返回每个索引值以及包含每一行数据的Series。
它的 输出 如下所示−
注意 − 因为 iterrows() 迭代每一行,它不会保留整个行的数据类型。0、1、2是行索引,col1、col2、col3是列索引。
itertuples()
itertuples() 方法将返回一个迭代器,每个迭代器都会产生一个命名元组,用于表示数据框中的每一行。元组的第一个元素将是相应的行索引值,其余的值是行的数据值。
它的 输出 如下:
注意 − 在迭代过程中不要尝试修改任何对象。迭代只用于读取,而迭代器返回的是原始对象的副本(视图),因此对于原始对象的更改不会反映在这个对象上。
其输出如下所示:
观察,没有任何变化。