• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    Pandas Dataframe数据帧的迭代之iterrows(),itertuples(),items()详解

    发布者: 浪子 | 发布时间: 2025-6-17 08:12| 查看数: 96| 评论数: 0|帖子模式

    Pandas Dataframe数据帧的迭代

    迭代数据帧通常不是推荐的做法,因为
    1. pandas
    复制代码
    的设计初衷是向量化操作以提高效率。然而,在某些情况下,也可能需要逐行或逐列迭代数据。
    需要注意的是,迭代数据帧的行或列可能会导致性能下降,特别是对于大型数据集。在可能的情况下,最好使用向量化操作来提高效率。

    迭代行

    1.使用
    1. .iterrows()
    复制代码

      1. .iterrows()
      复制代码
      是一个生成器,它迭代数据帧的索引和行。
    • 对于每一行,它返回一个包含索引和该行数据的元组。
    1. import pandas as pd  

    2. df = pd.DataFrame({  
    3.     'A': [1, 2, 3],  
    4.     'B': [4, 5, 6],  
    5.     'C': [7, 8, 9]  
    6. })  

    7. for index, row in df.iterrows():  
    8.     print(f"Index: {index}")  
    9.     print(row)  
    复制代码
    2.使用
    1. .itertuples()
    复制代码

      1. .itertuples()
      复制代码
      方法比
      1. .iterrows()
      复制代码
      更快,因为它返回命名元组,这些元组在Python中的性能优于字典。
    • 返回的元组的第一个元素是行的索引,其余元素是行中的数据。
      1. .itertuples()
      复制代码
      返回的是命名元组,可以通过属性名称访问这些元素,例如
      1. row.A
      复制代码
      1. row.B
      复制代码
      等。
    1. import pandas as pd  

    2. df = pd.DataFrame({  
    3.     'A': [10, 20, 30],  
    4.     'B': [40, 50, 60],  
    5.     'C': ['p', 'q', 'r']  
    6. })  
    7.   
    8. for row in df.itertuples():  
    9.     print(row)

    10. '''
    11. Pandas(Index=0, A=10, B=40, C='p')  
    12. Pandas(Index=1, A=20, B=50, C='q')  
    13. Pandas(Index=2, A=30, B=60, C='r')'''
    复制代码
    迭代列

    迭代列通常更简单,因为可以直接迭代数据帧的列名或访问列数据。
    1. import pandas as pd  
    2.   
    3. # 创建一个DataFrame  
    4. df = pd.DataFrame({  
    5.     'A': [1, 2, 3],  
    6.     'B': [4, 5, 6],  
    7.     'C': [7, 8, 9]  
    8. })  
    9.   
    10. # 方法1: 迭代列名  
    11. for column in df.columns:  
    12.     print(f"Column Name: {column}")  
    13.     # 通过列名访问列数据  
    14.     print(df[column])   
    15.   
    16. # 方法2: 直接迭代DataFrame对象(默认迭代列名)  
    17. for column in df:  
    18.     print(f"Column Name: {column}")  
    19.     print(df[column])  
    20.   
    21. # 方法3: 使用df.items()同时迭代列名和数据  
    22. for column, data in df.items():  
    23.     print(f"Column Name: {column}")  
    24.     # data变量直接包含列数据,无需通过df[column]访问  
    25.     print(data)  
    复制代码
    总结

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

    来源:https://www.jb51.net/python/339690ad7.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表