Reputation: 105
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
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
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