Joining pandas DataFrames by Column names
dataframe, join, pandas, python, python-3.x
Solution
You can use the `left_on` and `right_on` options of pd.merge as follows:
pd.merge(frame_1, frame_2, left_on='county_ID', right_on='countyid')
Or equivalently with DataFrame.merge:
frame_1.merge(frame_2, left_on='county_ID', right_on='countyid')
I was not sure from the question if you only wanted to merge if the key was in the left hand DataFrame. If that is the case then the following will do that (the above will in effect do a many to many merge)
pd.merge(frame_1, frame_2, how='left', left_on='county_ID', right_on='countyid')
Or
frame_1.merge(frame_2, how='left', left_on='county_ID', right_on='countyid')
Problem
I have two DataFrames with the following column names: ``` frame_1: event_id, date, time, county_ID frame_2: countyid, state ``` I would like to get a DataFrame with the following columns by left-joining on `county_ID = countyid`: ``` joined_dataframe: event_id, date, time, county, state ``` I cannot figure out how to do it if the columns on which I want to join are not the index.