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

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

本文介绍在 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 相关产品和应用

全部下载

专题列表