ich zwei Pandas Datenrahmen haben, die Ich mag würde zusammenZusammenführen von zwei Pandas Datenrahmen mit Zeitreihen Index
Zum Beispiel fusionieren/join:
#required packages
import os
import pandas as pd
import numpy as np
import datetime as dt
# create sample time series
dates1 = pd.date_range('1/1/2000', periods=4, freq='10min')
dates2 = dates1
column_names = ['A','B','C']
df1 = pd.DataFrame(np.random.randn(4, 3), index=dates1,
columns=column_names)
df2 = pd.DataFrame(np.random.randn(4, 3), index=dates2,
columns=column_names)
df3 = df1.merge(df2, how='outer', left_index=True, right_index=True, suffixes=('_x', '_y'))
Von hier würde Ich mag die beiden Datensätze in die fusionieren folgende Weise (die Reihenfolge der Spalten) Hinweis:
A_x A_y B_x B_y C_x C_y
2000-01-01 00:00:00 2000-01-01 00:00:00 -0.572616 -0.867554 -0.382594 1.866238 -0.756318 0.564087
2000-01-01 00:10:00 2000-01-01 00:10:00 -0.814776 -0.458378 1.011491 0.196498 -0.523433 -0.296989
2000-01-01 00:20:00 2000-01-01 00:20:00 -0.617766 0.081141 1.405145 -1.183592 0.400720 -0.872507
2000-01-01 00:30:00 2000-01-01 00:30:00 1.083721 0.137422 -1.013840 -1.610531 -1.258841 0.142301
I beide Indizes Datenrahmen erhalten möchte, indem entweder ein Mehrindexdatenrahmen erstellen oder eine Spalte für den zweiten Index erzeugt wird. Wäre es einfacher, merge_ordered anstelle von merge oder join zu verwenden?
Jede Hilfe wird geschätzt.
Ich denke, das ist nahe, was ich will, aber die Reihenfolge der Spalten ist nicht genau was ich will. Ich muss es bestellt haben A_x A_y B_x B_y ... und so weiter. Gibt es eine Möglichkeit, die Spalten auf diese Weise zu sortieren? vielleicht noch eine Sortierfunktion? –
@MooseDrool, du kannst df.sort_index verwenden (axis = 1, inplace = True) – Vaishali
Das macht Sinn! –