Найти и сопоставить элементы в столбце и изменить значения соответствующих строк в другом столбце - PullRequest
2 голосов
/ 15 апреля 2020

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

df = pd.DataFrame({'ID':['A','B','A','C','C'], 'value':[2,4,9,1,3.5]})
df
  ID  value
0  A    2.0
1  B    4.0
2  A    9.0
3  C    1.0
4  C    3.5

Что мне нужно сделать, это от go до ID столбца и для каждого уникального значения найти эту строку и умножить соответствующий строка в столбце value на основе имеющейся у меня ссылки.

Например, если у меня есть следующая ссылка :

if A multiply by 10
if B multiply by 3
if C multiply by 2

Тогда желаемый результат будет:

df
  ID  value
0  A    2.0*10
1  B    4.0*3
2  A    9.0*10
3  C    1.0*2
4  C    3.5*2

Заранее спасибо .

1 Ответ

4 голосов
/ 15 апреля 2020

Использование Series.map со словарем для серии, используемой для нескольких столбцов value:

d = {'A':10, 'B':3,'C':2}
df['value'] = df['value'].mul(df['ID'].map(d))

print (df)
  ID  value
0  A   20.0
1  B   12.0
2  A   90.0
3  C    2.0
4  C    7.0

Сведения :

print (df['ID'].map(d))
0    10
1     3
2    10
3     2
4     2
Name: ID, dtype: int64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...