连接大量数据帧

时间:2016-06-25 21:10:32

标签: python pandas dataframe concatenation

我有一个包含许多数据帧的字典D。 我可以使用D[0], D[1]...D[i]访问每个数据帧,并将整数作为相应数据帧的键/标识符。

我现在想以这种方式将所有数据帧连接成一个新的数据帧:

 new_df = pd.concat([D[0],D[1],...D[i]], axis= 1) 

你会建议我如何解决这个问题(需要继续使用concat)?

我尝试生成D列表并包含此但收到错误消息。

1 个答案:

答案 0 :(得分:1)

我认为最简单的方法是使用dict理解dict项目:

In [14]:
d = {'a':pd.DataFrame(np.random.randn(5,3), columns=list('abc')), 'b':pd.DataFrame(np.random.randn(5,3), columns=list('def'))}
d

Out[14]:
{'a':           a         b         c
 0  0.030358  1.523752  1.040409
 1 -0.220019 -1.579467 -0.312059
 2  1.019489 -0.272261  1.182399
 3  0.580368  1.985362 -0.835338
 4  0.183974 -1.150667  1.571003, 'b':           d         e         f
 0 -0.911246  0.721034 -0.347018
 1  0.483298 -0.553996  0.374566
 2 -0.041415 -0.275874 -0.858687
 3  0.105171 -1.509721  0.265802
 4 -0.788434  0.648109  0.688839}

In [29]:
pd.concat([df for k,df in d.items()], axis=1)

Out[29]:
          a         b         c         d         e         f
0  0.030358  1.523752  1.040409 -0.911246  0.721034 -0.347018
1 -0.220019 -1.579467 -0.312059  0.483298 -0.553996  0.374566
2  1.019489 -0.272261  1.182399 -0.041415 -0.275874 -0.858687
3  0.580368  1.985362 -0.835338  0.105171 -1.509721  0.265802
4  0.183974 -1.150667  1.571003 -0.788434  0.648109  0.688839