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

Pandas函数仅修改DataFrame第一列,第二列无变更问题排查

问题原因与解决方法

问题出在return df的缩进位置——它被放在了try代码块内部、for循环的迭代过程里。这就导致函数在处理完第一列(DR_NDrugs)后,直接返回了修改后的DataFrame,for循环根本没机会执行到第二列(DR_TDoc)的处理逻辑。

修正后的代码如下:

import pandas as pd
import numpy as np  # 补充导入numpy,原代码使用了np但未声明

def new_func(folder, file, types, folder1_changes: tuple):
    df = pd.read_csv(folder + '/' + file, encoding='1251').astype(types)
    for (i, j) in folder1_changes:
        try:
            product_names_list = list(df[i].unique())
            products_arr = np.array(range(1, len(product_names_list)+1))
            product_names_map = {}
            for a, p in zip(products_arr, product_names_list):
                product_names_map[p] = f'{j}{a}'

            df[i] = df[i].map(product_names_map)

        except KeyError:
            continue
    # 将return移至for循环外部,确保所有列处理完成后再返回
    return df

修正后,函数会遍历folder1_changes中的所有列对,完成所有列的映射修改后,再返回最终的DataFrame,第二列DR_TDoc就能正常被修改了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 09:47:36