You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Pandas如何在满足条件的指定行列上应用自定义函数

实现代码

import pandas as pd

# 初始化数据
df = {'a': [1, 2, 3],
      'b': [77, 88, 99],
      'c1': [1, 1, 1],
      'c2': [2, 2, 2],
      'c3': [3, 3, 3]}
df = pd.DataFrame(df)

# 自定义函数
def test_function(row):
    return row['b']

# 核心实现逻辑
for col in df.columns[df.columns.str.startswith('c')]:
    # 提取当前c列后缀的数字
    col_suffix_num = int(col[1:])
    # 匹配a列值等于后缀数字的行
    match_mask = df['a'] == col_suffix_num
    # 对匹配行应用自定义函数并赋值
    df.loc[match_mask, col] = df[match_mask].apply(test_function, axis=1)

# 输出结果验证
print(df)

实现说明

  • 用str.startswith('c')动态筛选所有c开头的列,不需要硬编码c1/c2/c3,后续新增同规则列也能自动适配
  • 逐列匹配a列值和列名后缀,仅修改符合条件的单元格,性能开销小,逻辑清晰易读
  • 完全兼容自定义函数的后续逻辑调整,只要函数保持接收行参数返回目标值即可,不需要修改核心逻辑

内容的提问来源于stack exchange,提问作者Alvin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 21:54:04