Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中pandas.DataFrame.iterrows方法的使用。

DataFrame.iterrows(self)               [source]

将DataFrame行作为(索引,Series)对进行迭代。

Yields:

index :  标签或标签元组

行的索引。MultiIndex的元组。

data : Series

行的数据为Series.

it : generator

遍历框架行的生成器。

Notes

因为iterrows为每一行返回一个序列,所以它不会跨行保留dtype(DataFrames跨列保留dtype)。例如,

>>> 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

要在迭代行时保留dtype,最好使用itertuples(),它返回值的namedtuple,通常比iterrows快。

您永远不应修改要迭代的内容。不能保证在所有情况下都能正常工作。根据数据类型,迭代器将返回副本而不是视图,并且对其进行写入将无效。