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

如何修改pandas自定义函数实现自动遍历DataFrame所有列批量计算

修改后的完整函数
def match_function(df):
    # 遍历DataFrame所有列
    for column in df.columns:
        # 仅处理字符串类型列,避免非字符串列调用str方法报错
        if df[column].dtype == object:
            df_1 = df[column].str.split(',', expand=True)
            df_11 = df_1.apply(lambda s: s.value_counts(), axis=1).fillna(0)
            # 保留原有计算逻辑不变
            match = df_11.iloc[:, 0][0]/df_11.sum(axis=1)*100
            df[column] = match
    # 可根据需要选择返回处理后的df,或单独提取计算结果
    return df
核心调整点
  • 取消原函数的列名入参,改为直接接收DataFrame作为入参,修正了原函数依赖全局变量的不规范写法
  • 新增全列遍历逻辑,自动逐列执行原有计算规则
  • 新增字符串类型列判断,避免非字符串格式的列执行str.split时报错
使用方法

直接把需要处理的DataFrame作为参数传入即可,示例:

# 假设你要处理的DataFrame名为your_df
processed_df = match_function(your_df)
补充说明

如果你的列中存在可转为字符串的内容需要处理,可删除类型判断,统一把列内容转字符串后再执行后续逻辑,修改对应行即可:

df_1 = df[column].astype(str).str.split(',', expand=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 15:36:06