如何合并函数内外的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输出。
问题原因
- 拼写错误:代码中
dispaly(df3)是笔误,正确写法为display(df3),该错误会导致代码报错,无法执行到显示df3的步骤。 df2构造可能不符合要求:如果value_1和value_2不是可迭代序列(比如列表),而是单个值,df2只会生成一行数据,无法得到预期的4行结果。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
相关产品推荐
相关产品推荐

