2017-06-14 5 views
1

Ich habe zwei Pandas Datenframes, eines mit Wetterinformationen, stündlich gegeben, und eines mit Busankunftsdaten, etwa jede Minute oder so gegeben.Beitritt Pandas Datenrahmen im Stundenbereich

Ich möchte die Datenrahmen beitreten, so dass Busdaten mit Wetter für diese Stunde z. Busdaten zwischen 01.00 und 14.00 Uhr am 01.06.2012 werden mit entsprechenden Wetterdaten verknüpft.

beispiels Bus Daten

DateTime    LineID Longitude Latitude 
2013-01-01 00:00:27  4.0  -6.279000 53.416683 
2013-01-01 00:01:33  4.0  -6.279321 53.416697 
2013-01-01 00:02:44  4.0  -6.279435 53.416492 
2013-01-01 00:03:28  4.0  -6.279553 53.416596 
2013-01-01 00:04:31  4.0  -6.279868 53.416530 

z Wetterdaten

DateTime    Temperature Rainfall 
2013-01-01 00:00:00  10    0  
2013-01-01 01:00:00  10    0  
2013-01-01 02:00:00  11    0 
2013-01-01 03:00:00  11    0.1 
2013-01-01 04:00:00  11    0.2 

Gibt es eine Möglichkeit, dies zu tun? Jede Hilfe wird sehr geschätzt.

+0

Was Sie Ergebnisse zu erwarten? Ich sehe keine PM-Zeiten oder 1-6-2012-Daten in Ihren Beispieldaten? Könntest Du das erläutern? –

Antwort

3

IIUC, ich glaube, Sie brauchen pd.merge_asof:

pd.merge_asof(bus_df,weather_df, on='DateTime') 

Ausgang:

   DateTime LineID Longitude Latitude Temperature Rainfall 
0 2013-01-01 00:00:27  4.0 -6.279000 53.416683   10  0.0 
1 2013-01-01 00:01:33  4.0 -6.279321 53.416697   10  0.0 
2 2013-01-01 00:02:44  4.0 -6.279435 53.416492   10  0.0 
3 2013-01-01 00:03:28  4.0 -6.279553 53.416596   10  0.0 
4 2013-01-01 00:04:31  4.0 -6.279868 53.416530   10  0.0 
+0

Das hört sich genau danach an, was ich brauche. Ich erhalte einen Fehler, der besagt: "AttributError: Modul 'Pandas' hat kein Attribut 'merge_asof'" obwohl ich versuche zu laufen? – Reggie

+0

In welcher Version von Pandas bist du? –

+0

['pd.merge_asof'] (http://pandas.pydata.org/pandas-docs/version/0.19.0/generated/pandas.merge_asof.html#pandas-merge-asof) Neu in Version 0.19.0 –