Python 外部合并熊猫中的两个数据帧

Python 外部合并熊猫中的两个数据帧,python,pandas,dataframe,merge,outer-join,Python,Pandas,Dataframe,Merge,Outer Join,如何将两个数据帧合并到熊猫中 例如,假设我们有两个数据帧: import pandas as pd s1 = pd.DataFrame({ 'time':[1234567000,1234567005,1234567009], 'X1':[96.32,96.01,96.05] },columns=['time','X1']) # to keep columns order s2 = pd.DataFrame({ 'time':[1234567001,123456700

如何将两个数据帧合并到熊猫中

例如,假设我们有两个数据帧:

import pandas as pd

s1 = pd.DataFrame({
    'time':[1234567000,1234567005,1234567009],
    'X1':[96.32,96.01,96.05]
},columns=['time','X1'])  # to keep columns order

s2 = pd.DataFrame({
    'time':[1234567001,1234567005],
    'X2':[23.88,23.96]
},columns=['time','X2'])  # to keep columns order

它们可以与(
s3=pd.merge(s1,s2,how='outer')
)或(
s3=s1.merge(s2,how='outer')
)合并,但它不在适当的位置。相反,我希望合并的数据帧替换内存中的s1。

因为内存中没有
参数,所以我认为您最多可以做的是:

s1 = pd.merge(s1,s2,how='outer')
除此之外,我认为没有多少事情可做。

希望这能有所帮助。

您确定可以避免复制吗?有一个
copy
kwarg,但是玩它和
np.share\u memory
表明在你的例子中结果总是被复制的。考虑到结果数据帧与原始数据帧有很大不同,这并不奇怪。但是我对熊猫不是很有经验,所以我的印象可能有点不对劲。因为这里没有任何
in-place
参数,所以我认为你在这里能做的最多的就是
s1=pd.merge(s1,s2,how='outer')
,除此之外,我认为没有什么可以做的了。。sorry@AndrasDeak仅供参考,谢谢你的链接。不过,我可能没有资格回答:)我的直觉是,只有在非常特殊的情况下才能避免复制(考虑到
.merge
是一种提供各种操作的非常通用的工具),当结果逐字包含原始数据帧的列时。仅供参考。我说服自己,
copy
kwarg主要是为了作秀,除非有人在做一些琐碎/怪异的事情。在你的例子中,我怀疑有很多实际的连接正在进行,所以你不能跳过副本:(很遗憾,没有就地合并或连接(即使有索引必须匹配的限制)。