Умножьте все значения в фрейме данных на число из другого фрейма данных, имя которого совпадает - PullRequest
0 голосов
/ 26 июня 2019

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

df1

0 'NOK' 10
1 'NOK' 20
2 'SEK' 30
3 'USD' 40

df2

0 'NOK' 2
1 'SEK' 1
2 'USD' 7

Iхочу, чтобы df1 было расширено до

df1

0 'NOK' 20
1 'NOK' 40
2 'SEK' 30
3 'USD' 280

Мои кадры данных включают много валют, поэтому ищется общее решение.

Я жестко закодировал каждое имя, как это, но я хочу общий код.

df1['test']=0
df1.loc[df1[1]=='NOK','test']=df1[1][df1[1]=='NOK']*df2[df2[1]=='NOK]

1 Ответ

0 голосов
/ 26 июня 2019

Вы можете сделать с set_index и mul:

(df1.set_index([1])[2]
    .mul(df2.set_index([1])[2])
 .reset_index()
)

Выход:

       1    2
0  'NOK'   20
1  'NOK'   40
2  'SEK'   30
3  'USD'  280
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...