DataFrame.iterrows(self) [source]
将DataFrame行作为(索引,Series)对进行迭代。
Yields: | index : 标签或标签元组 行的索引。 data : 行的数据为 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
快。
您永远不应修改要迭代的内容。不能保证在所有情况下都能正常工作。根据数据类型,迭代器将返回副本而不是视图,并且对其进行写入将无效。