2017-07-05 102 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 –