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

如何合并函数内外的DataFrame?df与df2合并无输出问题

DataFrame合并无预期输出的问题解决

问题场景

现有空DataFrame df,函数fun内部生成df2,尝试用append合并得到df3,但实际无预期输出。原代码如下:

import pandas as pd
df = pd.DataFrame(columns=['a' , 'b'])

def fun():
    # 省略运算逻辑
    value_1 = ['value', 'value', 'value', 'value']
    value_2 = ['good', 'good', 'bad', 'bad']
    df2= pd.DataFrame({'a': value_1, 'b': value_2})
    display(df2)
    
    df3 = df.append(df2, ignore_index=True)
    dispaly(df3)  # 此处存在拼写错误

    return df2
fun()

预期输出是包含4行数据的df3,但实际使用append或concat时无df3输出。

问题原因

  1. 拼写错误:代码中dispaly(df3)是笔误,正确写法为display(df3),该错误会导致代码报错,无法执行到显示df3的步骤。
  2. df2构造可能不符合要求:如果value_1和value_2不是可迭代序列(比如列表),而是单个值,df2只会生成一行数据,无法得到预期的4行结果。
  3. append方法已弃用:pandas 2.0+版本中append方法已被标记为弃用,虽然仍能使用,但可能存在兼容性问题。

修正后的代码

import pandas as pd
df = pd.DataFrame(columns=['a' , 'b'])

def fun():
    # 确保value_1和value_2是列表类型,生成多行数据
    value_1 = ['value', 'value', 'value', 'value']
    value_2 = ['good', 'good', 'bad', 'bad']
    df2= pd.DataFrame({'a': value_1, 'b': value_2})
    display(df2)
    
    # 使用concat替代append,语法更规范
    df3 = pd.concat([df, df2], ignore_index=True)
    display(df3)  # 修正拼写错误

    return df2
fun()

关键解决步骤

  • 修正display的拼写错误,确保能正常执行显示逻辑。
  • 确认df2的构造数据为可迭代序列,保证生成预期的行数。
  • 优先使用pd.concat方法进行DataFrame合并,避免append的弃用风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 14:45:41