2017-02-20 6 views
0

I'va eigentlich 2 Datenrahmen:Pandas für die Zeit als Index suchen und ignorieren Datum

  1. Zuerst ein paar Informationen mit Datum enthalten/Zeit
  2. Die zweite enthalten andere Informationen mit Datum/Uhrzeit

ich muß durch die Verwendung nächste Zeit als Schlüssel (ignorieren Datum)

ich muß mit einem bestimmten Zeitpunkt in dem ersten Datenrahmen den 2 Datenrahmen kombinieren, um den nächsten Zeitindex (oder Wert finden) In dem zweiten Datenrahmen

ich Sie

EDIT verstehen hoffen:

aus CSV-Datenrahmen 1:

date;index 
01/01/90 00:00:00;2 
01/01/90 00:00:30;9 

aus CSV-Datenrahmen 2:

date;value 
02/02/00 00:00:02;300 

ERFORDERLICH:

date;value;index 
02/02/00 00:00:02;300;2 
+1

Können Sie einige Beispieldaten mit den gewünschten Ausgang hinzufügen? – jezrael

Antwort

1

können Sie reindex mit method='nearest' verwenden:

#new indexes with same dates, but different times 
df1.index = pd.to_datetime(df1['date'].dt.strftime('%H:%M:%S')) 
df2.index = pd.to_datetime(df2['date'].dt.strftime('%H:%M:%S')) 
print (df1) 
            date index 
date           
2017-02-20 00:00:00 1990-01-01 00:00:00  2 
2017-02-20 00:30:00 1990-01-01 00:00:30  9 

print (df2) 
            date value 
date           
2017-02-20 00:02:00 2000-02-02 00:00:02 300 

df3 = df1.reindex(df2.index, method='nearest') 
#add values from df2 
df = pd.concat([df3.drop('date', axis=1), df2], axis=1).reset_index(drop=True) 
print (df) 
    index    date value 
0  2 2000-02-02 00:00:02 300 
+0

Funktioniert das, wenn ich 02/02/00 00: 00: 04; 300 zum csv hinzufüge, weil es der Index 2 ist entweder – Timo

+0

Warum haben Sie% H in Ihrem Index weggelassen? – Timo

+0

Ja, tut mir leid. Du hast recht. – jezrael

Verwandte Themen