2017-03-21 3 views
0

Zum Beispielpandas: Wie kann ich lineare Zusammenführung auf zwei sortiere Datenrahmen mit den gleichen Spalten tun?

df1 

      x y 
2015-01-26 1 2 
2015-03-24 3 4 


df2 

      x y 
2015-02-23 5 6 
2015-04-27 7 8 

Ich möchte

  x y 
2015-01-26 1 2 
2015-02-23 5 6 
2015-03-24 3 4 
2015-04-27 7 8 

Wie bekommen? Ich habe versucht, die pd.merge, scheint es nicht die gleichen Spalten betrachten?

Auch weil df1 und df2 bereits sortiert sind, ich für eine O(n) merge wünschen

aktualisiert

Es

den Trick
pd.merge(df1, df2, left_index=True, right_index=True, how='outer', sort=False, on=['x', 'y']) 

tun scheint. Ich habe sort=False gesetzt, wird das eine O(n) Lösung sein?

Antwort

1

gibt es eigentlich eine Methode nur dafür:

df1.append(df2).sort_index() 

dies setzt voraus, dass Ihre Indizes sind von dtype='datetime64[ns]'

+0

dies O (n log n) tut das Sortieren –

Verwandte Themen