Yash
Yash

Reputation: 105

multiply based on a condition on hardcoded values in pandas python

I have :

a = 2
b = 3
c = 4

my table looks like :

ID   value 
a    20 
b    30
c    40

Expected table :

ID   value   Expected_output
a    20      40
b    30      90
c    40      160

I tried using np.where but getting the wrong output. How can I multiply hardcoded a,b,c with values

Upvotes: 0

Views: 223

Answers (2)

Abercrombie
Abercrombie

Reputation: 1086

Assuming your values a,b,c are stored in a dictionary, you can create another pandas series multiplier to perform the multiplication

Edit: added map() function thanks to @filbranden

import pandas as pd
mul_dict = {"a": 2, "b": 3, "c": 4}

id_col = ["a", "b", "c"]
val_col = [20, 30, 40]
df = pd.DataFrame(list(zip(id_col, val_col)), columns=["ID", "value"])

# multiplier is a pandas series
multiplier = df["ID"].map(mul_dict) 

df["Expected_output"] = df["value"] * multiplier
print(df)

Upvotes: 3

Gius
Gius

Reputation: 514

if multiplier is a list you can simply do:

data = pd.read_excel('test.xlsx')
multiplier = [2, 3, 4]
data['Expected_output'] = data.value * multiplier
print(data)

#   ID  value  Expected_output
# 0  a     20               40
# 1  b     30               90
# 2  c     40              160

Upvotes: 0

Related Questions