У меня есть два кадра данных df1 и df2, которые выглядят следующим образом:
df1
A B C
0 Y1 X1 1000
1 Y2 X2 3000
2 Y3 X1 2000
3 Y4 X1 5000
4 Y5 X3 7000
5 Y6 X4 1500
6 Y7 X2 1200
7 Y8 X4 1100
df2
K L M N
0 Y1 X1 40 2020-06
1 Y1 X1 30 2020-05
2 Y2 X2 50 2020-01
3 Y1 X1 90 2020-04
4 Y3 X1 10 2020-06
5 Y2 X2 40 2020-04
6 Y3 X1 55 2020-03
7 Y4 X1 12 2019
8 Y5 X3 80 2020-04
9 Y5 X3 60 2020-05
10 Y6 X4 90 2020-06
11 Y7 X2 30 2020-03
12 Y8 X4 50 2020-02
13 Y7 X2 60 2020-01
Что мне нужно из двух вышеупомянутых фреймов данных, так это то, что я хочу добавить новый столбец в df1, наложив условие на столбец N второго фрейма данных, т.е. добавьте строки того же типа, значение которых равно <= 2020-05 (формат строки год-неделя). Я хочу получить желаемый результат: </p>
df3 = pd.DataFrame({"A":["Y1","Y2","Y3","Y4","Y5","Y7","Y8"],
"B":["X1","X2","X1","X1","X3","X2","X4"],
"C":[1000,3000,2000,5000,7000,1200,1100],
"P":[30+90,50+40,55,12,80+60,30+60,50]})
df3
A B C P
0 Y1 X1 1000 120
1 Y2 X2 3000 90
2 Y3 X1 2000 55
3 Y4 X1 5000 12
4 Y5 X3 7000 140
5 Y7 X2 1200 90
6 Y8 X4 1100 50
То есть по наложенному условию я добавляю строки, которые удовлетворяют условиям df2 (кроме столбца N), а затем, наконец, добавляю столбец P к df1.
Для простоты я взял пример, фактический набор данных большой. Может ли кто-нибудь помочь мне написать функцию для получения желаемого результата, или как я могу использовать функцию apply или iterrows et c. Я новичок в программировании, и я застрял. Помощь оценена.