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

如何在DataFrame中基于数组名前4位生成列名并新增列

DataFrame按规则动态生成列名新增列的实现方法

核心逻辑分为两步:首先按照「提取数组名称前4个字符、拼接_prop后缀」的规则生成目标列名,再将数组内容赋值给DataFrame的对应列即可,以下是两种可靠性最高的实现方式:

  • 单个数组处理场景
    直接显式传入数组名字符串生成列名即可,不会出现变量名匹配错误的问题,示例代码:

    import pandas as pd
    
    # 测试数据
    df = pd.DataFrame({"user_id": [1, 2, 3], "score": [88, 76, 92]})
    customer = [0.72, 0.34, 0.91]  # 名为customer的目标数组
    
    # 按规则生成列名
    array_name = "customer"
    target_col = f"{array_name[:4]}_prop"
    
    # 新增列
    df[target_col] = customer
    

    执行后DataFrame会新增名为cust_prop的列,完全匹配需求规则。

  • 多数组批量处理场景
    如果需要同时处理多个数组、批量生成对应列,建议先将所有待处理数组以「数组名: 数组内容」的键值对格式存入字典,遍历字典完成批量赋值,减少重复代码,示例代码:

    # 汇总所有待处理数组
    array_map = {
        "customer": [0.72, 0.34, 0.91],
        "product": [199, 329, 89],
        "merchant": [4.7, 4.2, 4.9]
    }
    
    # 遍历批量新增列
    for arr_name, arr_content in array_map.items():
        col_name = f"{arr_name[:4]}_prop"
        df[col_name] = arr_content
    

    执行后会自动生成cust_prop、prod_prop、merc_prop三个符合命名规则的新列。

避坑提示:不要通过读取Python全局/局部作用域变量的方式自动抓取数组名,这类方法容易匹配到同名的无关变量,运行稳定性差,优先选择上述两种显式传参的实现方式,可控性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 05:18:18