Search code examples
pythonpandasdataframemergeouter-join

Outer merging two data frames in place in pandas


How can I outer merge two data frames in place in pandas?

For example, assume we have these two data frames:

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

They could be merged with pandas.DataFrame.merge (s3 = pd.merge(s1,s2,how='outer')) or with pandas.merge (s3=s1.merge(s2,how='outer')), but it isn't in place. Instead, I'd like the merged data frame to replace s1 in memory.


Solution

  • Since there is not inplace parameter in pandas.merge i think the most you can do is:

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

    other than that, i don't think there's much left to do.
    Hope that was helpful somehow.