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

Pandas循环追加多个DataFrame仅返回空数据框问题求解

问题成因

  • pandas的DataFrame.append()方法不属于原地修改操作:执行该方法后不会修改原有df_total对象,只会返回一个追加完成的新DataFrame。你现有代码中没有将方法返回的新对象赋值给df_total,所以变量一直保持初始的空状态。
  • 补充说明:append方法已经在pandas 2.0+版本中被正式弃用,官方更推荐使用性能更高的pd.concat()方法完成多数据框合并操作。

解决方法

方案1:最小改动适配现有代码

只需要将追加行的代码改为赋值回df_total即可:

# 把原来的 df_total.append(df,ignore_index=True) 替换为下方代码
df_total = df_total.append(df, ignore_index=True)

方案2:替换为官方推荐的pd.concat写法(性能更优,推荐)

循环中先把所有处理好的DataFrame存入列表,最后一次性合并,避免循环内反复生成新DataFrame带来的性能损耗,完整修改代码如下:

import time

start_time = time.time()

# 创建临时列表存放所有处理完成的DataFrame
df_list = []

for i in range(0, len(dataframe_csv)):
    df = pd.read_csv(dataframe_csv[i])
    df = df.drop(index=df.index[0], axis=0)
    df = df.assign(Date = date_list[i])
    df_list.append(df)

# 一次性合并所有DataFrame
df_total = pd.concat(df_list, ignore_index=True)

elapsed_time = time.time() - start_time
print(elapsed_time)

修改完成后再执行df_total.shape即可得到正常的非空维度结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:06:03