Pandas Dataframe数据帧的迭代
迭代数据帧通常不是推荐的做法,因为的设计初衷是向量化操作以提高效率。然而,在某些情况下,也可能需要逐行或逐列迭代数据。
需要注意的是,迭代数据帧的行或列可能会导致性能下降,特别是对于大型数据集。在可能的情况下,最好使用向量化操作来提高效率。
迭代行
1.使用
- 是一个生成器,它迭代数据帧的索引和行。
- 对于每一行,它返回一个包含索引和该行数据的元组。
- import pandas as pd
- df = pd.DataFrame({
- 'A': [1, 2, 3],
- 'B': [4, 5, 6],
- 'C': [7, 8, 9]
- })
- for index, row in df.iterrows():
- print(f"Index: {index}")
- print(row)
复制代码 2.使用
- 方法比更快,因为它返回命名元组,这些元组在Python中的性能优于字典。
- 返回的元组的第一个元素是行的索引,其余元素是行中的数据。
- 返回的是命名元组,可以通过属性名称访问这些元素,例如、等。
- import pandas as pd
- df = pd.DataFrame({
- 'A': [10, 20, 30],
- 'B': [40, 50, 60],
- 'C': ['p', 'q', 'r']
- })
-
- for row in df.itertuples():
- print(row)
- '''
- Pandas(Index=0, A=10, B=40, C='p')
- Pandas(Index=1, A=20, B=50, C='q')
- Pandas(Index=2, A=30, B=60, C='r')'''
复制代码 迭代列
迭代列通常更简单,因为可以直接迭代数据帧的列名或访问列数据。- import pandas as pd
-
- # 创建一个DataFrame
- df = pd.DataFrame({
- 'A': [1, 2, 3],
- 'B': [4, 5, 6],
- 'C': [7, 8, 9]
- })
-
- # 方法1: 迭代列名
- for column in df.columns:
- print(f"Column Name: {column}")
- # 通过列名访问列数据
- print(df[column])
-
- # 方法2: 直接迭代DataFrame对象(默认迭代列名)
- for column in df:
- print(f"Column Name: {column}")
- print(df[column])
-
- # 方法3: 使用df.items()同时迭代列名和数据
- for column, data in df.items():
- print(f"Column Name: {column}")
- # data变量直接包含列数据,无需通过df[column]访问
- print(data)
复制代码 总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
来源:https://www.jb51.net/python/339690ad7.htm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|