百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

【Python数据分析系列】循环遍历DataFrame每行并处理结果新增列

ztj100 2025-04-09 22:45 9 浏览 0 评论

这是我的第389篇原创文章。

一、引言

在Python中,使用 pandas 库处理 DataFrame 是非常常见的操作。如果你需要循环遍历每一行,并根据处理结果在该行新增几列,假设我们有一个 DataFrame,包含两列 A 和 B,我们希望对每一行进行处理,并新增两列 C 和 D,其中 C = A + B,D = A * B。可以通过以下几种方式实现。

二、实现过程

2.1 使用apply方法

apply 方法是处理 DataFrame 的高效方式,适用于对每一行或每一列进行操作。如果你需要对每一行进行处理,并在该行新增几列,可以定义一个函数,然后将其应用到每一行。

import pandas as pd

# 创建一个示例 DataFrame
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)

# 定义一个函数,用于处理每一行
def process_row(row):
    row['C'] = row['A'] + row['B']
    row['D'] = row['A'] * row['B']
    return row

# 使用 apply 方法对每一行应用处理函数
df = df.apply(process_row, axis=1)

print(df)

2.2使用iterrows或itertuples

如果你需要更细致地控制每一行的处理过程,可以使用 iterrows 或 itertuples 遍历每一行,然后手动更新 DataFrame。

import pandas as pd

# 创建一个示例 DataFrame
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)

# 遍历每一行,处理并新增列
for index, row in df.iterrows():
    df.loc[index, 'C'] = row['A'] + row['B']
    df.loc[index, 'D'] = row['A'] * row['B']

print(df)

2.3 使用 assign方法

assign 方法可以用于在 DataFrame 中新增列,它返回一个新的 DataFrame,不会修改原始数据。

import pandas as pd

# 创建一个示例 DataFrame
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)

# 使用 assign 方法新增列
df = df.assign(
    C=lambda x: x['A'] + x['B'],
    D=lambda x: x['A'] * x['B']
)

print(df)

2.4 直接使用向量化操作

如果处理逻辑比较简单,可以直接使用向量化操作,这种方式通常比循环更高效。

import pandas as pd

# 创建一个示例 DataFrame
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)

# 直接计算并新增列
df['C'] = df['A'] + df['B']
df['D'] = df['A'] * df['B']

print(df)

三、小结

总结

  • apply 方法:适用于复杂的行处理逻辑。
  • iterrows 或 itertuples:适用于需要逐行处理的情况,但性能较低。
  • assign 方法:适用于需要新增多列的情况,且不会修改原始数据。
  • 向量化操作:适用于简单的计算逻辑,性能最高。

根据你的具体需求选择合适的方法。

作者简介: 读研期间发表6篇SCI数据算法相关论文,目前在某研究院从事数据算法相关研究工作,结合自身科研实践经历持续分享关于Python、数据分析、特征工程、机器学习、深度学习、人工智能系列基础知识与案例。关注gzh:数据杂坛,获取数据和源码学习更多内容。

原文链接:

【Python数据分析系列】循环遍历DataFrame每一行并根据处理结果在该行新增列(案例+源码)

相关推荐

Whoosh,纯python编写轻量级搜索工具

引言在许多应用程序中,搜索功能是至关重要的。Whoosh是一个纯Python编写的轻量级搜索引擎库,可以帮助我们快速构建搜索功能。无论是在网站、博客还是本地应用程序中,Whoosh都能提供高效的全文搜...

如何用Python实现二分搜索算法(python二分法查找代码)

如何用Python实现二分搜索算法二分搜索(BinarySearch)是一种高效的查找算法,适用于在有序数组中快速定位目标值。其核心思想是通过不断缩小搜索范围,每次将问题规模减半,时间复杂度为(O...

路径扫描 -- dirsearch(路径查找器怎么使用)

外表干净是尊重别人,内心干净是尊重自己,干净,在今天这个时代,应该是一种极高的赞美和珍贵。。。----网易云热评一、软件介绍Dirsearch是一种命令行工具,可以强制获取web服务器中的目录和文件...

78行Python代码帮你复现微信撤回消息!

来源:悟空智能科技本文约700字,建议阅读5分钟。本文基于python的微信开源库itchat,教你如何收集私聊撤回的信息。...

从零开始学习 Python!2《进阶知识》 Python进阶之路

欢迎来到Python学习的进阶篇章!如果你说已经掌握了基础语法,那么这篇就是你开启高手之路的大门。我们将一起探讨面向对象编程...

白帽黑客如何通过dirsearch脚本工具扫描和收集网站敏感文件

一、背景介绍...

Python之txt数据预定替换word预定义定位标记生成word报告(四)

续接Python之txt数据预定替换word预定义定位标记生成word报告(一)https://mp.toutiao.com/profile_v4/graphic/preview?pgc_id=748...

假期苦短,我用Python!这有个自动回复拜年信息的小程序

...

Python——字符串和正则表达式中的反斜杠('\')问题详解

在本篇文章里小编给大家整理的是关于Python字符串和正则表达式中的反斜杠('\')问题以及相关知识点,有需要的朋友们可以学习下。在Python普通字符串中在Python中,我们用'\'来转义某些普通...

Python re模块:正则表达式综合指南

Python...

Python中re模块详解(rem python)

在《...

python之re模块(python re模块sub)

re模块一.re模块的介绍1.什么是正则表达式"定义:正则表达式是一种对字符和特殊字符操作的一种逻辑公式,从特定的字符中,用正则表达字符来过滤的逻辑。(也是一种文本模式;)2、正则表达式可以帮助我们...

MySQL、PostgreSQL、SQL Server 数据库导入导出实操全解

在数字化时代,数据是关键资产,数据库的导入导出操作则是连接数据与应用场景的桥梁。以下是常见数据库导入导出的实用方法及代码,包含更多细节和特殊情况处理,助你应对各种实际场景。一、MySQL数据库...

Zabbix监控系统系列之六:监控 mysql

zabbix监控mysql1、监控规划在创建监控项之前要尽量考虑清楚要监控什么,怎么监控,监控数据如何存储,监控数据如何展现,如何处理报警等。要进行监控的系统规划需要对Zabbix很了解,这里只是...

mysql系列之一文详解Navicat工具的使用(二)

本章内容是系列内容的第二部分,主要介绍Navicat工具的使用。若查看第一部分请见:...

取消回复欢迎 发表评论: