大熊猫:沿轴= 1的DataFrame的低级串联

时间:2019-01-24 21:34:42

标签: python pandas dataframe concatenation

问题:

  • 一个有2个DataFrames
  • 一个人知道两者具有相同的(MultiIndex)索引
  • (以防万一)两个索引都已排序
  • 两个DataFrame都有不相交的列

如何通过将它们的内存块一起拍打来非常有效地连接两个DataFrame,即等于

pd.concat([df1, df2], axis=1, sort=False)

但是强制以某种方式完全忽略两个DataFrames的索引值以使其非常快吗?我希望它实质上与内存复制操作尽可能接近(不合并)。

import pandas as pd
df1 = pd.DataFrame(data={'i1':['a','a','b','b'], 
                         'i2':[0,1,0,1], 
                         'x':[1.,2.,3.,4.]})
df1.set_index(['i1','i2'], inplace=True)
df1.sort_index(inplace=True)

df2 = pd.DataFrame(data={'y':[5,6,7,8]}, index=df1.index)

pd.concat([df1, df2], axis=1, sort=False)
         x  y
i1 i2        
a  0   1.0  5
   1   2.0  6
b  0   3.0  7
   1   4.0  8

1 个答案:

答案 0 :(得分:1)

for col in df2:
    df1[col] = df2[col].values