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

如何在动态创建的DataFrame列中追加数据且不覆盖原有内容

解决DataFrame动态列循环追加队列数据的覆盖问题

需要给动态创建的DataFrame新增列,数据来自一个队列列表:

  • 当队列长度大于DataFrame行数M时,循环迭代队列元素,按行逗号分隔追加,不能覆盖已有内容
  • 当队列长度小于M时,剩余行可以留空或跳过

原代码存在每次循环覆盖整列的问题,期望输出示例如下:

expected output:: 

Assume m=2
for row 1:: inside new_column a,c,b
for row 2:: inside new_column b,a,c

m=3
for row 1:: inside new_column a,a
for row 2:: inside new_column b,b
for row 3:: inside new_column c,c

原代码问题:

def read_tor_cell(self):
    queue = ['a','b','c','a','b','c']
        complete_path = self.Task2 + filename
        print(complete_path)
        for i in queue():  # 错误写法:queue是列表,不能加()调用
            df_round_robin = self.path_to_csv.head(M)
            df_round_robin["new_column"] = i  # 每次赋值覆盖整列,未实现追加
            df_round_robin.to_csv('test.csv')
            print(df_round_robin)

修正思路

  1. 只读取一次目标DataFrame,避免重复初始化导致的覆盖
  2. 为新列初始化空字符串,用于逐行追加元素
  3. 遍历队列时,通过元素索引 % M计算目标行,实现轮询分配
  4. 按行判断是否已有内容,已有则加逗号追加,无则直接赋值

修正后的代码

def read_tor_cell(self):
    queue = ['a', 'b', 'c', 'a', 'b', 'c']
    M = 2  # 可根据实际需求调整行数
    complete_path = self.Task2 + filename
    print(complete_path)
    
    # 仅读取一次目标DataFrame,避免重复覆盖
    df_round_robin = self.path_to_csv.head(M)
    # 初始化新列为空字符串
    df_round_robin["new_column"] = ""
    
    # 遍历队列,按轮询逻辑追加到对应行
    for idx, item in enumerate(queue):
        row_idx = idx % M  # 确定当前元素要追加到哪一行
        target_row = df_round_robin.at[row_idx, "new_column"]
        if target_row:
            df_round_robin.at[row_idx, "new_column"] = f"{target_row},{item}"
        else:
            df_round_robin.at[row_idx, "new_column"] = item
    
    df_round_robin.to_csv('test.csv')
    print(df_round_robin)

验证示例结果

当M=2时

队列长度6>2,轮询分配后:

  • 第1行:a,c,b(对应队列第0、2、4位元素)
  • 第2行:b,a,c(对应队列第1、3、5位元素)

当M=3时

队列长度6=3×2,轮询分配后:

  • 第1行:a,a(对应队列第0、3位元素)
  • 第2行:b,b(对应队列第1、4位元素)
  • 第3行:c,c(对应队列第2、5位元素)

当队列长度小于M时(如队列=['a','b'], M=3)

  • 第1行:a
  • 第2行:b
  • 第3行:空字符串(留空)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 01:35:22