#python #pandas
#python #pandas
Вопрос:
Я пытаюсь получить строки из моего фрейма данных, которые соответствуют заданной комбинации недели и года
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), вместо того, чтобы возвращать только там, где совпадают год и неделя.
df.loc[df['Week'].isin(wks['Week']) amp; (df['Year'].isin(wks['Year']))]
Любая помощь с благодарностью 🙂
Ответ №1:
Используйте 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