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

如何创建可复用函数,基于指定列中的值删除数据行?

如何创建基于指定列值删除行的可复用Pandas函数

你现有可正常运行的代码(注意原代码里list1应为listToRemove,修正后如下):

df = raw_data
listToRemove = ["red", "blue"]
raw_data = raw_data[raw_data.colours.isin(listToRemove) == False]

你编写的函数存在几个语法和逻辑错误,导致无法运行:

  • 函数参数不能用[list]这种写法,属于非法参数定义
  • listToRemove = [list]会把传入的列表再嵌套一层,变成二维列表,导致isin判断失效
  • 用df.column无法通过变量指定列名,必须使用df[column]的方式来通过字符串变量获取列

正确的可复用函数写法如下:

def remove_rows(df, column_name, remove_list):
    # 过滤掉指定列中包含目标列表元素的行
    filtered_df = df[~df[column_name].isin(remove_list)]
    return filtered_df

用法示例

针对你的原始数据调用该函数:

# 假设raw_data是你的目标DataFrame
cleaned_data = remove_rows(raw_data, "colours", ["red", "blue"])

补充说明

  • 用~代替== False,是Pandas中更简洁的布尔取反写法
  • 函数参数名尽量清晰易懂,避免歧义
  • 函数内部不直接修改传入的原DataFrame,返回新的过滤后结果,符合数据处理的最佳实践

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 21:48:19