一次附加多个pandas数据帧

时间:2016-04-10 05:42:28

标签: python pandas append

我试图找到一种方法一次附加多个pandas数据帧,而不是使用

逐个附加它们
df.append(df)

让我们说有5个大熊猫数据帧t1,t2,t3,t4,t5。我如何一次追加它们?

的等价物
df = rbind(t1,t2,t3,t4,t5)

5 个答案:

答案 0 :(得分:50)

我认为您可以使用concat

print pd.concat([t1, t2, t3, t4, t5])

也许你可以ignore_index

print pd.concat([t1, t2, t3, t4, t5], ignore_index=True)

docs中的更多信息。

答案 1 :(得分:33)

您是否只是尝试使用列表作为追加的参数?或者我错过了什么?

import numpy as np
import pandas as pd

dates = np.asarray(pd.date_range('1/1/2000', periods=8))
df1 = pd.DataFrame(np.random.randn(8, 4), index=dates, columns=['A', 'B', 'C', 'D'])
df2 = df1.copy()
df3 = df1.copy()
df = df1.append([df2, df3])

print df

答案 2 :(得分:0)

假设我们有一个主要的 Excel 文件,其中有 3 个以 p1p2p3 命名的子表

我们可以按如下方式一起阅读所有工作表:

d = pd.read_excel('p1.xlsx',sheet_name=['p1','p2','p3'])

现在要将所有工作表合并到一个数据框中,我们可以使用以下内容:

df=pd.concat(d[frame] for frame in d.keys())

答案 3 :(得分:0)

如果每个数据框的列不同,您可以添加以追加:

#list dataframe you want to append
frame = [t1, t2, t3, t4, t5]

#new dataframe to store append result
myDataFrame = pd.DataFrame()

for df in frame:
    myDataFrame = myDataFrame.append(df)

通过检查 myDataFrame 长度确保追加成功:

len(myDataFrame)

如果数据框中的所有列都相同或列差异,只要每个数据框的列数相同,您就可以使用 pd.concat(dataframe) 作为提及耶斯莱尔。

有关 append 和 concat 的更多信息,请单击以下链接: Merge, join, concatenate and compare in Pandas

答案 4 :(得分:-3)

#行明智附加

combined_data = pd.concat([t1, t2, t3, t4, t5], axis=0)

这会将一个数据帧堆叠在另一个数据帧上

#column明智地添加

combined_data = pd.concat([t1, t2, t3, t4, t5], axis=1)

这会将第二个数据框附加到第一个数据框的右侧