按列名加入熊猫数据框架

我有两个数据框架,列名如下:

frame_1:
event_id, date, time, county_ID


frame_2:
countyid, state

我想通过在 county_ID = countyid上加入(左)来获得包含以下列的 DataFrame:

joined_dataframe
event_id, date, time, county, state

如果我要加入的列不是索引,我就不知道如何加入。

211096 次浏览

你可以使用 合并left_onright_on选项如下:

pd.merge(frame_1, frame_2, left_on='county_ID', right_on='countyid')

或者相当于 DataFrame.merge:

frame_1.merge(frame_2, left_on='county_ID', right_on='countyid')

我不确定从问题,如果你只想合并,如果关键是在左边的数据框架。如果是这种情况,那么下面的代码将这样做(上面的代码实际上将进行多对多合并)

pd.merge(frame_1, frame_2, how='left', left_on='county_ID', right_on='countyid')

或者

frame_1.merge(frame_2, how='left', left_on='county_ID', right_on='countyid')

你需要把 county_ID作为右边框架的索引:

frame_2.join ( frame_1.set_index( [ 'county_ID' ], verify_integrity=True ),
on=[ 'countyid' ], how='left' )

根据您的信息,在熊猫左连接断开时,右边的框架在连接列上具有非唯一值。看看这个 臭虫

所以你需要验证完整性之前,由 , verify_integrity=True加入