I have two dataframes :
import pandas as pd
df1 = pd.DataFrame(columns={'Date', 'latitude' , 'longitude' , 'tg'})
df1.head(5).to_dict() :
{'Date': {0: Timestamp('1984-01-01 00:00:00'), 1: Timestamp('1984-01-02
00:00:00'), 2: Timestamp('1984-01-03 00:00:00'), 3: Timestamp('1984-01-04 00:00:00'), 4: Timestamp('1984-01-05 00:00:00')}, 'longitude': {0: 13.875,
1: 13.875, 2: 13.875, 3: 13.875, 4: 13.875}, 'tg': {0: 5.339999675750732,
1: 2.559999942779541, 2: 4.019999980926514, 3: -0.07000000029802322, 4:
-2.259999990463257}, 'latitude': {0: 49.125, 1: 49.125, 2: 49.125, 3:
49.125, 4: 49.125}}
df2 = pd.DataFrame(columns={'Date', 'latitude_rr' , 'longitude_rr' , 'Runoff' , 'rr'})
df2.head(5).to_dict() :
{'Date': {0: Timestamp('1984-01-01 00:00:00'), 1: Timestamp('1984-01-02
00:00:00'), 2: Timestamp('1984-01-03 00:00:00'), 3: Timestamp('1984-01-04
00:00:00'), 4: Timestamp('1984-01-05 00:00:00')}, 'latitude_rr': {0: 49.125,
1: 49.125, 2: 49.125, 3: 49.125, 4: 49.125}, 'longitude_rr': {0: 13.875, 1:
13.875, 2: 13.875, 3: 13.875, 4: 13.875}, 'Runoff': {0: 0.3808451, 1:
0.3808451, 2: 0.6760563, 3: 1.464789, 4: 2.456338}, 'rr': {0: 0.0, 1: 0.0,
2: 2.799999952316284, 3: 2.200000047683716, 4: 0.4000000059604645}}
I am trying to get the 'tg' values when df1.Date equals df2.Date and df1.latitude equals df2.latitude and df1.longitude equals df2.longitude then add them to df2.
df1 and df2 don't have the same size. I tried :
df3 = df1[df1.latitude.isin(df2.latitude_rr) & df1.longitude.isin(df2.longitude_rr) & df1.Date.isin(df2.Date)].tg
I tried to add that to df2 but since df2 is larger than df1 , it leads to wrong matches.
I am new to Pandas so any help is greatly appreciated. Thank you!