У меня есть проблема, которая требует поиска цен на продукты с небольшим поворотом.
Таблица проданных продуктов
Date Prod_1 Prod_2 Prod_3
5/1/2020 0 0 0
6/1/2020 0 0 0
7/1/2020 0 0 0
8/1/2020 100 1,000 50
9/1/2020 120 1,100 100
10/1/2020 140 1,200 150
11/1/2020 160 1,300 200
12/1/2020 180 1,400 250
1/1/2021 200 1,500 300
2/1/2021 220 1,600 350
3/1/2021 240 1,700 400
4/1/2021 260 1,800 450
5/1/2021 280 1,900 500
6/1/2021 300 2,000 550
Таблица цен выглядит следующим образом
Date Prod_1 Prod_2 Prod_3
8/1/2020 50 10 2.00
9/1/2020 55 11 2.50
10/1/2020 56 12 2.65
11/1/2020 58 13 2.70
12/1/2020 60 14 2.80
1/1/2021 10 10 1.00
Я хочу вычислить что-то, что будет искать цену для каждого продукта в зависимости от даты. Если данные о цене не содержат дату, она просто использует последнюю цену в таблице. Я попытался индексировать по дате и переиндексировать для умножения, но, похоже, не могу сделать это правильно.
Окончательный результат должен быть примерно таким:
Date Rev_Prod_1 Rev_Prod_2 Rev_Prod_3
5/1/2020 0 0 0
6/1/2020 0 0 0
7/1/2020 0 0 0
8/1/2020 5,000 10,000 100
9/1/2020 6,600 12,100 250
10/1/2020 7,840 14,400 398
11/1/2020 9,280 16,900 540
12/1/2020 10,800 19,600 700
1/1/2021 2,000 15,000 300
2/1/2021 2,200 15,000 350
3/1/2021 2,400 16,000 400
4/1/2021 2,600 17,000 450
5/1/2021 2,800 18,000 500
6/1/2021 3,000 19,000 550
, что я могу сделать до сих пор присоединитесь к таблицам по датам
prod_data = pd.read_csv('../Product_sold.csv')
prod_data.set_index('Date', inplace=True)
price_data = pd.read_csv('../Product_cost.csv')
price_data.set_index('Date', inplace=True)
prod_data_comb = prod_data.join(price_data)
, что даст результат
Prod_1 Prod_2 Prod_3 Prod_1_Pr Prod_2_Pr Prod_3_Pr
Date
5/1/2020 0 0 0 NaN NaN NaN
6/1/2020 0 0 0 NaN NaN NaN
7/1/2020 0 0 0 NaN NaN NaN
8/1/2020 100 1,000 50 50.0 10.0 2.00
9/1/2020 120 1,100 100 55.0 11.0 2.50
10/1/2020 140 1,200 150 56.0 12.0 2.65
11/1/2020 160 1,300 200 58.0 13.0 2.70
12/1/2020 180 1,400 250 60.0 14.0 2.80
1/1/2021 200 1,500 300 10.0 10.0 1.00
2/1/2021 220 1,600 350 NaN NaN NaN
3/1/2021 240 1,700 400 NaN NaN NaN
4/1/2021 260 1,800 450 NaN NaN NaN
5/1/2021 280 1,900 500 NaN NaN NaN
6/1/2021 300 2,000 550 NaN NaN NaN
, из которого я могу умножиться, но я хочу, чтобы цены после данных 1/1/2021 были такими же, как 1 / 1/2021 для умножения.