Многоуровневая индексация и умножение столбцов и строк - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть следующие два кадра данных панд.Мне нужно умножить df1 на df2 для соответствующих столбцов df1 Col 2 и df2.

df1

Col 1                A                B     
Col 2           1    2   3       1    2    3 
date                        
2017-01-01      1    2   1       8    6    2
2017-01-02      2    4   2       3    2    1
2017-01-03      3    3   5       2    3    5

df2

date          1      2    3
2017-01-01   20%    10%   5%
2017-01-02   30%    20%   15%
2017-01-03   40%    30%   12%

Я хочу умножить столбец 2 таблицы 1 на соответствующие столбцы таблицы 2. Например, для столбца A столбца1 на 2017-01-01, значения 1 * 20%, чтобы получить 0,2.См. Окончательную требуемую таблицу ниже:

Col 1                   A                  B        
Col 2              1    2    3       1     2      3
date                            
2017-01-01      0.2   0.2   0.05    1.6   0.6   0.1
2017-01-02      0.6   0.8   0.3     0.9   0.4   0.15
2017-01-03      1.2   0.9   0.6     0.8   0.9   0.6

Я пробовал 3 для циклов с диапазонами даты и столбца, но df1 [i] [j] .loc [date] не являетсяиндексирование правильно.Я застрял в этом некоторое время и был бы очень признателен за помощь.

1 Ответ

0 голосов
/ 14 сентября 2018

Используйте параметр level

df1.mul(df2, level=1)

Col 1  A      B    
Col 2  1   2  1   2
0      4  10  4  40

Настройка

df1 = pd.DataFrame([
    [1, 2, 1, 8]
], columns=pd.MultiIndex.from_product([[*'AB'], [1, 2]], names=['Col 1', 'Col 2']))

df2 = pd.DataFrame([[4, 5]], columns=[1, 2])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...