2017-07-05 104 views
1

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

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

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 

他们可以用pandas.DataFrame.merges3 = pd.merge(s1,s2,how='outer'))或pandas.merges3=s1.merge(s2,how='outer'))合并,但它是不到位。相反,我想要合并的数据帧来替换内存中的s1。

+0

你甚至确定避免复制是可能的吗?有一个'拷贝'kwarg [] *如果假,不要不必要地复制数据*“(https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.merge.html),但玩弄它和'np.share_memory'表明在你的例子中结果总是被复制。考虑到由此产生的数据框与原件完全不同,这并不令人意外。但我对熊猫不是很有经验,所以我的印象可能会有所改变。 –

+0

你是什么意思“它不在位”?你想达到什么目的? –

+0

@AndrewL我想合并的数据框来取代内存中的s1。 –

回答

2

由于没有在pandas.mergeinplace参数我觉得你可以做的最多的是:比

s1 = pd.merge(s1,s2,how='outer') 

其他,我不认为有多少东西需要做。
希望这有助于某种方式。

+0

谢谢,如果没有其他答案,我会在几天内接受它 –

+0

当然,我希望有更好的东西..如果没有这样的话,那将是非常令人失望的:/ @FranckDernoncourt –