Python 如何基于2列从另一个数据帧获取数据

Python 如何基于2列从另一个数据帧获取数据,python,dataframe,Python,Dataframe,这是我的密码 A['period_id'] = A['period_number','Session'].map(B.set_index(['period_number','Session'])['period_id']) 因此,我想从B的period\u id列中获取数据,并根据两列(period\u number和Session)匹配的标准将其提供给A。然而,它给了我错误。我能做什么?您可以使用pd.merge: A_columns = A.columns A_columns.append

这是我的密码

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

因此,我想从B的
period\u id
列中获取数据,并根据两列(
period\u number
Session
)匹配的标准将其提供给A。然而,它给了我错误。我能做什么?

您可以使用
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

请注意,如果
A
的列名称在
期间号
会话
中不同,则必须调整
左键
,反之亦然。明确地说,
A
是左边的数据框,而
B
是右边的数据框。

看看如何使用
merge