当前位置: 首页 > 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.zskr.cn/news/50457.html

相关文章:

  • 2025 年 11 月温州法律顾问律师,温州婚姻律师,温州刑事律师最新推荐,聚焦资质、案例、售后的五家机构深度解读
  • 2025年跨境电商ERP系统权威推荐:赛狐ERP系统适配多平台、多站点智能化管理,跨境电商卖家首选
  • P14507 缺零分治 mexdnc
  • 2025年共享观光车厂家权威推荐榜单:封闭式观光车/电动观光车/电动游览车源头厂家精选
  • 聚焦成都留学服务:藤校申请、语言培训、就业规划一站式解决,2025优质机构榜单出炉
  • 用wireshark抓包
  • everything如何设置 取消打开时默认置顶在最前面
  • 50019_基于微信小程序的校园互助系统
  • 2025年有实力的维修企业一览:行业洞察与权威推荐
  • 2025年国内工业制冷公司口碑排行榜前十强权威解析
  • 留学生课程衔接选哪家?98%满意度机构榜单,覆盖30+国家学业适配方案
  • rag调优
  • 2025留学生求职机构首选清单,高录取率/名企资源/个性化规划一键get
  • 主标题:2025 年 11 月杭州护照翻译,杭州出生证翻译,杭州签证翻译,聚焦资质、案例、售后的五家机构深度解读
  • 过敏
  • 2025年南京办公楼监控代理公司权威推荐榜单:监控批发/监控代理/监控经销商源头公司精选
  • 2025 最新温州律师事务所推荐!电商财税 / 执行 / 法律顾问 / 婚姻 / 刑事领域顶尖律师事务所权威榜单
  • 2025年11月国内窗帘电机工厂综合实力排行榜单
  • 肌肉扭伤与骨折
  • pytest 接口自动化测试面试问题汇总
  • MySQL Elasticsearch HBase Hive Redis 设计哲学和应用场景的区别
  • 2025年青岛蓝光扫描仪全国销售公司权威推荐榜单:扫描仪全国销售/蓝光扫描仪全国售卖/三丰扫描仪全国售卖源头公司精选
  • 2025年室内橡胶地垫批发厂家权威推荐榜单:幼儿园橡胶地垫/橡胶地垫/橡胶防滑地垫源头厂家精选
  • 现今智慧客房系统开发团队排名:2025年酒店智能化解决方案权威指南
  • 2025年安徽靠谱的自助入住系统服务权威推荐
  • P11267 【MX-S5-T1】王国边缘,我的痛你如何懂QWQ
  • 聚焦澳大利亚留学:2025热门机构核心优势对比,录取率/服务/费用一网打尽
  • 2025年克锐思变形缝渗漏维修定制厂家权威推荐榜单:克锐思施工缝渗漏维修/克锐思地下室堵漏/克锐思穿墙管渗漏维修服务商精选
  • 2025年专业机构检测制造厂权威推荐榜单:学校实验仪器检验/实验室通用仪器检测/仪器检定检测服务机构精选
  • 思考文明社会