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

Python函数如何为单个变量传入多个值?列删除函数参数改造咨询

解决DataFrame批量删除指定后缀列的问题

首先明确你之前用'DATE' or 'STATE'无效的原因:在Python里,or是逻辑运算符,'DATE' or 'STATE'会直接返回第一个非空字符串'DATE',相当于你只给函数传了一个后缀,自然删不掉以STATE结尾的列。

要实现删除多后缀列的需求,必须修改函数,不过改动很小——因为pandas的str.endswith方法本身就支持传入字符串的可迭代对象(比如列表、元组),直接调整函数参数的处理逻辑即可:

方案1:直接支持多值传入

修改后的函数:

def function_drop_columns(x, y): 
    return x.loc[:, ~x.columns.str.endswith(y)]

调用时直接传列表或元组:

df1 = function_drop_columns(df, ['DATE', 'STATE'])

方案2:兼容单值和多值输入

如果想保留原函数对单个字符串的支持(比如之前写的function_drop_columns(df, 'DATE')还能正常用),可以加个简单的类型判断:

def function_drop_columns(x, y): 
    # 若传入的是单个字符串,转成元组(str.endswith支持元组)
    if isinstance(y, str):
        y = (y,)
    return x.loc[:, ~x.columns.str.endswith(y)]

这样不管是传单个后缀还是多个后缀的列表,函数都能正确处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 13:22:09