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主要是为了作秀,除非有人在做一些琐碎/怪异的事情。在你的例子中,我怀疑有很多实际的连接正在进行,所以你不能跳过副本:(很遗憾,没有就地合并或连接(即使有索引必须匹配的限制)。