Python 以高效的方式合并多个数据帧

Python 以高效的方式合并多个数据帧,python,pandas,dataframe,merge,Python,Pandas,Dataframe,Merge,我有很多数据帧需要通过axis=0进行合并,找到一些快速的方法来完成这项操作非常重要 到目前为止,我尝试了merge和append,但是这些函数在合并后都需要赋值,比如df=df.append(df2),并且会变得越来越慢,是否有其他方法可以就地合并并且更有效?假设您的数据帧具有相同的索引,您可以使用pd.concat: In [61]: df1 Out[61]: a 0 1 In [62]: df2 Out[62]: b 0 2 In [64]: pd.concat(d

我有很多数据帧需要通过axis=0进行合并,找到一些快速的方法来完成这项操作非常重要


到目前为止,我尝试了
merge
append
,但是这些函数在合并后都需要赋值,比如
df=df.append(df2)
,并且会变得越来越慢,是否有其他方法可以就地合并并且更有效?

假设您的数据帧具有相同的索引,您可以使用
pd.concat

In [61]: df1
Out[61]: 
   a
0  1

In [62]: df2
Out[62]: 
   b
0  2
In [64]: pd.concat(df_list, axis=1)
Out[64]: 
   a  b
0  1  2
创建数据帧列表:

In [63]: df_list = [df1, df2]
现在,调用pd.concat:

In [61]: df1
Out[61]: 
   a
0  1

In [62]: df2
Out[62]: 
   b
0  2
In [64]: pd.concat(df_list, axis=1)
Out[64]: 
   a  b
0  1  2

假设您的数据帧具有相同的索引,您可以使用
pd.concat

In [61]: df1
Out[61]: 
   a
0  1

In [62]: df2
Out[62]: 
   b
0  2
In [64]: pd.concat(df_list, axis=1)
Out[64]: 
   a  b
0  1  2
创建数据帧列表:

In [63]: df_list = [df1, df2]
现在,调用pd.concat:

In [61]: df1
Out[61]: 
   a
0  1

In [62]: df2
Out[62]: 
   b
0  2
In [64]: pd.concat(df_list, axis=1)
Out[64]: 
   a  b
0  1  2

但是数据帧是如何在concat中合并的呢?它不是使用赋值吗?@danche您没有提供任何示例,所以我假设这是您想要的。假设存在ABCDE等数据帧,这可以将这些数据帧放入
[A,B,C,D,E]
列表中并对其进行解析。它比合并AB然后合并ABC然后合并ABCD快吗?@danche 10000%是的。需要注意的一点是,merge将在公共列上合并。这将简单地连接数据帧,而无需任何连接逻辑,因此速度更快。我将尝试您的方法,谢谢!由于有200万个数据帧需要连接,如果它能工作,将会有很大帮助!但是数据帧是如何在concat中合并的呢?它不是使用赋值吗?@danche您没有提供任何示例,所以我假设这是您想要的。假设存在ABCDE等数据帧,这可以将这些数据帧放入
[A,B,C,D,E]
列表中并对其进行解析。它比合并AB然后合并ABC然后合并ABCD快吗?@danche 10000%是的。需要注意的一点是,merge将在公共列上合并。这将简单地连接数据帧,而无需任何连接逻辑,因此速度更快。我将尝试您的方法,谢谢!由于有200万个数据帧需要连接,如果它能工作,将会有很大帮助!