如何将100多个Pandas DataFrame追加到主DataFrame中?
一次性追加多个Pandas DataFrame的高效方法
嘿,你已经走在正确的路上了!既然你已经把所有需要追加的DataFrame(df2到df100)都存入了list1,其实只需要一行代码就能搞定,这里给你两种方案,其中一种还是官方推荐的高效写法:
方案1:延续你原来的append方法(注意过时提醒)
你之前用df1.append([df2, df3])的思路完全没问题,现在只需要把列表换成你已经准备好的list1就行:
# 直接把list1传入append,会一次性追加所有DataFrame df = df1.append(list1)
⚠️ 注意:从Pandas 1.4.0版本开始,append()方法已经被标记为过时(deprecated),虽然目前还能运行,但未来版本会被移除,所以更推荐下面的方案。
方案2:官方推荐的pd.concat()方法(高效且持久)
pd.concat()是Pandas专门用来合并多个DataFrame/Series的工具,处理大量DataFrame时效率比append更高,用法也很直观:
import pandas as pd # 把基础DataFrame df1和要追加的list1合并成一个大列表,传入concat df = pd.concat([df1] + list1, ignore_index=False)
- 如果你不需要保留原来的索引(比如各个DataFrame的索引有重复,想生成新的连续索引),可以设置
ignore_index=True:df = pd.concat([df1] + list1, ignore_index=True) - 如果你的DataFrame列名不一致,默认会保留所有列,缺失的列填充
NaN;如果只想保留共同列,可以添加join='inner'参数。
小提示
如果你的list1里已经包含了df1(比如你把所有DataFrame包括df1都存进去了),那直接传入list1就行,不用再加[df1] +:
df = pd.concat(list1)
内容的提问来源于stack exchange,提问作者Toby
相关产品推荐
相关产品推荐

