0
点赞
收藏
分享

微信扫一扫

​​*df.itertuples(index=False)​​​ 和 ​​*[df.iloc[i] for i in range(df.shape[0])]​

*df.itertuples(index=False)*[df.iloc[i] for i in range(df.shape[0])] 的效果是类似的,但并不完全一致。

  • *[df.iloc[i] for i in range(df.shape[0])]:这段代码会返回一个列表,列表中的每个元素都是 DataFrame 的一行。每一行是一个 Series 对象,索引是列名。然后,* 运算符会将这个列表解包成单独的参数。
  • *df.itertuples(index=False):这段代码会返回一个迭代器,迭代器中的每个元素都是一个元组,元组中的元素对应于 DataFrame 的一行。然后,* 运算符会将这个迭代器解包成单独的参数。

所以,虽然这两段代码都可以用来遍历 DataFrame 的行,但是它们返回的数据类型是不同的:前者返回的是 Series 对象,后者返回的是元组。

此外,*df.itertuples(index=False) 通常比 *[df.iloc[i] for i in range(df.shape[0])] 更高效,因为 itertuples 直接在 DataFrame 上进行迭代,而不需要通过 iloc 来获取每一行。希望这个解释能帮助你理解!

举报

相关推荐

0 条评论