问题:
如何通过将它们的内存块一起拍打来非常有效地连接两个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
答案 0 :(得分:1)
for col in df2:
df1[col] = df2[col].values