当前位置: 首页 > news >正文

Python遍历pandas数据方法总结

一、使用 iterrows()
iterrows() 是 pandas 中最常用的遍历 DataFrame 行的方法之一。它将 DataFrame 的每一行作为一个 Series 进行迭代。

import pandas as pd

def iterrows_example():
# 创建一个示例 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'Score': [85, 90, 88]}
df = pd.DataFrame(data)
print("Original DataFrame:")
print(df)
# 使用 iterrows() 遍历
for index, row in df.iterrows():
print(f"Index: {index}, Name: {row['Name']}, Age: {row['Age']}, Score: {row['Score']}")

调用函数

iterrows_example()

运行项目并下载源码

代码解释:

df.iterrows():生成一个迭代器,它为 DataFrame 中的每一行生成一个包含行索引 index 和行数据 row(作为 Series)的元组。
for index, row in df.iterrows():使用 for 循环遍历 DataFrame 的每一行。
row['Name']:通过列名从 row 这个 Series 中获取元素。
二、使用 itertuples()
itertuples() 会将 DataFrame 的每一行作为一个命名元组进行迭代,相比于 iterrows(),它通常更快,因为元组的访问比 Series 更快。

import pandas as pd

def itertuples_example():
# 创建一个示例 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'Score': [85, 90, 88]}
df = pd.DataFrame(data)
print("Original DataFrame:")
print(df)
# 使用 itertuples() 遍历
for row in df.itertuples():
print(f"Index: {row.Index}, Name: {row.Name}, Age: {row.Age}, Score: {row.Score}")

调用函数

itertuples_example()

运行项目并下载源码

代码解释:

df.itertuples():生成一个迭代器,它为 DataFrame 中的每一行生成一个命名元组。
for row in df.itertuples():使用 for 循环遍历 DataFrame 的每一行。
row.Index、row.Name 等:通过命名元组的属性访问元素,这里 Index 是默认的索引属性,后面是 DataFrame 的列名。
三、使用 iteritems()
iteritems() 是对 DataFrame 的列进行迭代,将每一列作为一个 Series 进行迭代。

import pandas as pd

def iteritems_example():
# 创建一个示例 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'Score': [85, 90, 88]}
df = pd.DataFrame(data)
print("Original DataFrame:")
print(df)
# 使用 iteritems() 遍历
for column_name, column_data in df.iteritems():
print(f"Column: {column_name}")
print(column_data)

调用函数

iteritems_example()

运行项目并下载源码

代码解释:

df.iteritems():生成一个迭代器,它为 DataFrame 中的每一列生成一个包含列名 column_name 和列数据 column_data(作为 Series)的元组。
for column_name, column_data in df.iteritems():使用 for 循环遍历 DataFrame 的每一列。
四、使用 apply()
apply() 可以将函数应用于 DataFrame 的元素、行或列。

import pandas as pd

def apply_example():
# 创建一个示例 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'Score': [85, 90, 88]}
df = pd.DataFrame(data)
print("Original DataFrame:")
print(df)
# 使用 apply() 对行进行操作
def process_row(row):
return f"{row['Name']} is {row['Age']} years old and scored {row['Score']}"
result = df.apply(process_row, axis=1)
print("\nResult of apply() on rows:")
print(result)

调用函数

apply_example()

运行项目并下载源码

代码解释:

def process_row(row):定义一个处理行的函数。
df.apply(process_row, axis=1):将 process_row 函数应用于 DataFrame 的每一行(axis=1 表示按行操作)。
五、使用 applymap()
applymap() 用于对 DataFrame 的每个元素应用一个函数,通常用于元素级别的操作。

import pandas as pd

def applymap_example():
# 创建一个示例 DataFrame
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
print("Original DataFrame:")
print(df)
# 使用 applymap() 对元素进行操作
def square(x):
return x ** 2
result = df.applymap(square)
print("\nResult of applymap()😊
print(result)

调用函数

applymap_example()

运行项目并下载源码

代码解释:

def square(x):定义一个对元素进行平方操作的函数。
df.applymap(square):将 square 函数应用于 DataFrame 的每个元素。
六、使用 np.ndenumerate() 结合 values 属性
如果需要同时访问 DataFrame 的元素及其索引,可以将 numpy 的 ndenumerate() 与 DataFrame 的 values 属性结合使用。

import pandas as pd
import numpy as np

def ndenumerate_example():
# 创建一个示例 DataFrame
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
print("Original DataFrame:")
print(df)
# 使用 np.ndenumerate() 结合 values 属性遍历
values = df.values
for (i, j), value in np.ndenumerate(values):
print(f"Row {i}, Column {j}: {value}")

调用函数

ndenumerate_example()

运行项目并下载源码

代码解释:

df.values:将 DataFrame 转换为 numpy 数组。
np.ndenumerate(values):生成一个迭代器,为 numpy 数组中的每个元素生成一个包含元素索引 (i, j) 和元素值 value 的元组。
在选择遍历方法时,要根据具体需求和性能考虑进行选择。对于逐行操作,itertuples() 通常性能较好;对于元素级别的操作,根据情况选择 applymap() 或 apply();对于列操作,可使用 iteritems() 。

http://www.jsqmd.com/news/41135/

相关文章:

  • 2025 年 11 月温州电商财税律师,温州执行律师,温州法律顾问律师最新推荐,聚焦资质、案例、售后的七家机构深度解读
  • P2966 [USACO09DEC] Cow Toll Paths G 题解
  • 【System Beats!】第八章 异常控制流
  • 2025 年 11 月温州法律顾问律师,温州婚姻律师,温州刑事律师最新推荐,聚焦资质、案例、售后的五家机构深度解读
  • oracle 优化
  • 2025 年筛选机厂家推荐:深圳市恩艾斯科技有限公司,光学筛选机的专业缔造者与行业深耕者
  • 人工智能之编程基础 Python 入门:第六章 基本数据类型(二)
  • 2025年跨境电商ERP系统权威推荐:赛狐ERP系统适配多平台、多站点智能化管理,跨境电商卖家首选
  • 黄景行电脑软件简介
  • P14507 缺零分治 mexdnc
  • 20251115 - CAN协议层梳理【不含电气特性介绍】
  • 校准仪
  • 从工具理性到价值共生:开源链动2+1模式、AI智能名片与S2B2C商城体系的社会连接重构研究
  • 聚焦成都留学服务:藤校申请、语言培训、就业规划一站式解决,2025优质机构榜单出炉
  • 用wireshark抓包
  • 2025年安徽靠谱的GEO(AI搜索优化)服务商排行榜单
  • 50019_基于微信小程序的校园互助系统
  • 2025年有实力的维修企业一览:行业洞察与权威推荐
  • 管理者的三种境界
  • 2025年国内工业制冷公司口碑排行榜前十强权威解析
  • UI设计公司审美积累|APP界面从风格到功能的设计智慧
  • 留学生课程衔接选哪家?98%满意度机构榜单,覆盖30+国家学业适配方案
  • 2025 年 11 月山东实验室净化装修,山东实验室净化工程,山东实验室净化车间最新推荐,聚焦资质、案例、售后的五家机构深度解读!
  • 2025留学生名企内推认准谁?2025全球500强内推实力机构TOP5榜单,学业就业规划一体化服务机构推荐
  • 搬家平台推荐丨AI赋能国内搬家新体验 2025年三大优选搬家公司平台引领行业变革
  • 2025 年 11 月山东实验室净化建设,万级山东实验室净化,高校山东实验室净化最新推荐,聚焦资质、案例、售后的五家机构深度解读!
  • 【PlotNeuralNet】pycharm中运行为什么一定要用 文件名.py,而不能 .\路径\文件名.py?
  • rag调优
  • 【洛谷】哈希表实战:5 道经典算法题(unordered_map/set 应用 + 避坑指南) - 详解
  • 2025留学生求职机构首选清单,高录取率/名企资源/个性化规划一键get