pandas DataFrame 指定列数据处理与新增列方法

苏见山
苏见山
发布时间:2026-10-13| 4人浏览过
原创

本文介绍在 pandas DataFrame 中对指定列进行逻辑处理并生成新列或覆盖原值的方法。通过 df.apply 结合 lambda 函数,可实现按行处理数据。示例展示了如何根据列内容匹配特定关键词,利用正则表达式判断条件并赋值,适用于自动化测试分类等场景。

pandas DataFrame 指定列数据处理与新增列方法

背景:在处理 DataFrame 数据时,通常需要对某一特定列执行逻辑运算,从而生成一个新的列,或者直接覆盖该列原有的数值。

下文示例中涉及的 df 变量均为 pandas.DataFrame 类型的数据对象。

增加新列或更改某列的值

1、增加新列,或更改某列的值


df["列名"]=值

若赋值为固定的单一数值,则 DataFrame 中该列的所有行数据均会被统一设置为该值。

按行处理某列数据的实现细节

2、处理某列


df["列名"]=df.apply(lambda x:方法名(x,入参2),axis=1)

说明:

1、方法名需为独立的函数定义,用于处理传入的参数 x 数据。

2、x 代表 DataFrame 中的每一行数据,作为方法的第一个入参;可以通过【x.列名】的方式获取该行中指定列的数据。

3、入参2等为方法所需的其他参数,若无需其他参数则可省略不写。

4、设置 axis=1,表示每次选取一行数据进行计算处理,即按行方向进行操作。

例子如下:

根据列 title 是否包含特定词汇,向新列赋值 1 或 0。


bugInfo['IntegrationTest'] = bugInfo.apply(lambda x: self.bug_rule(x, "IntegrationTest"), axis = 1)
 
def bug_rule(self, frame, type): # 处理列表中的数据,更新到sql数据库中
  result = "0"
  if type == "SmokeTest": # 冒烟测试
    if re.search("^\[冒烟\]|\[冒烟测试\]|【冒烟】|【冒烟测试】", frame["title"]):
      result = "1"
  elif type == "InterfaceTest": # 接口测试
    if re.search("^\[接口\]|\[接口测试\]|【接口】|【接口测试】", frame["title"]):
      result = "1"
  elif type == "IntegrationTest": # 集成测试
    if self.IntegrationTime != "" and self.IntegrationTime == frame["created_time"]:
      result = "1"
  return result

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。