我正在尝试从数据框中获取与设定的星期年份组合匹配的行
df = pd.DataFrame({'Year':[2020, 2020, 2019, 2019, 2019, 2020],
'Week':[1, 2, 4, 5, 2, 4],
'other data':[5, 5, 5, 5, 5, 5]})
wks = pd.DataFrame({'Year':[2020,2020,2019], 'Week':[1, 2, 4]})
我希望能够使用wks将与那些周/年组合匹配的行保留在df中,所以输出将是:
Year Week other data
0 2020 1 5
1 2020 2 5
5 2020 4 5
我按如下所示尝试了.loc,但这只是单独检查每一列(在此示例中返回所有df),而不是仅返回Year和Week都匹配的地方。
df.loc[df['Week'].isin(wks['Week']) & (df['Year'].isin(wks['Year']))]
任何帮助都非常感激:)
答案 0 :(得分:2)
使用df.merge
:
In [816]: wks.merge(df, on=['Year', 'Week'])
Out[816]:
Year Week other data
0 2020 1 5
1 2020 2 5
2 2019 4 5