Умножьте столбцы со строками, сопоставив имя столбца и имя строки в Python / Pandas - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть фрейм данных, который выглядит следующим образом

> data
  A B
1 1 2
2 2 1

У меня есть фрейм справочных данных, который выглядит следующим образом

> ref
  Names Values
1     A      5
2     B     10

Я хочу умножить каждый столбец на соответствующую строку вСсылка с тем же именем

результат должен быть таким

> result
   A  B
1  5 20
2 10 10

Какой самый быстрый способ достичь этого в Python?Любая помощь будет принята с благодарностью

Ответы [ 2 ]

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

Ваш базовый кадр данных ref может быть представлен как Series следующим образом или с ref.set_index('Names')['Values']

s = pd.Series([5, 10], index=['A', 'B'])

Ваш data кадр данных выглядит следующим образом:

df = pd.DataFrame(dict(A=[1,2], B=[2,1]))

Умножение двух на df * s дает желаемый результат, потому что индексация каждого объекта используется для определения, какие массивы умножаются вместе.

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

Вы можете проверить mul

df.mul(ref.set_index('Names').Values)
Out[137]: 
    A   B
1   5  20
2  10  10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...