如何基于2列从另一个数据框中获取数据

时间:2019-09-22 00:28:44

标签: python dataframe

这是我的代码

A['period_id'] = A['period_number','Session'].map(B.set_index(['period_number','Session'])['period_id'])

因此,我想基于2列(period_idperiod_number)匹配的标准,从B列Session中获取数据,以提供给A。但是,这给了我错误。我该怎么办?

1 个答案:

答案 0 :(得分:0)

您可以使用pd.merge

A_columns = A.columns
A_columns.append("period_id")

# merge based on period_number and Session
merged_df = pd.merge(A, B,  how='left', left_on=['period_number','Session'], right_on = ['period_number','Session'])

final_df = merged_df[A_columns] # filter for only columns in A + `period_id` from B

请注意,如果Aperiod_number的列名不同,则必须调整Session,反之亦然{{1 }}。明确地说,left_on是此处的左侧数据框,B是右侧的数据框。