Измените все значения, которые удовлетворяют различным условиям в панде. - PullRequest
0 голосов
/ 06 ноября 2018
     A      B  C   D
0  foo    one  0   0
1  bar    one  1   2
2  foo    two  2   4
3  pak  three  3   6
4  foo    two  4   8
5  bar    two  5  10
6  foo    one  6  12
7  dop  three  7  14
8  foo    one  0   0
9  bar    one  1   2
10 pak    two  2   4
11 bar  three  3   6

Мне нужно умножить столбцы C и D на вес, но для значений столбца A вес отличается. Для foo это 2, для bar это 1,5, для pak это 3,4 и для dop это 2,3. На самом деле эти условия равны 15, а данные огромны, поэтому я не могу использовать для цикла.

1 Ответ

0 голосов
/ 06 ноября 2018

Использование Series.map:

conditions = {
    'foo': 2,
    'bar': 1.5,
    'pak': 3.4,
    'dop': 2.3

}

weights = df['A'].map(conditions)

df['result'] = df['C'] * df['D'] * weights
...