#python
Вопрос:
У меня есть серия панд
A 3
B 5
и словарь
dic={'A':4 , 'B':3}
Я хотел сопоставить и умножить этот ряд на словарь и его значения.
Таким образом, результат таков
A 12
B 15
Возможно ли это?
Я пытался
s=s.mul(s.map(dic))
Ответ №1:
Это должно произойти, если вы преобразуете входные серии pandas в фрейм данных:
df = pd.DataFrame({
'a': [1,2,3,4,5],
'b': [5,4,3,3,4],
'c': [3,2,4,3,10],
'd': [3, 2, 1, 1, 1]
})
params = {'a': 2.5, 'b': 3.0, 'c': 1.3, 'd': 0.9}
df1 = df.assign(**params).mul(df)
Ответ №2:
Просто сделайте а Series
из своего словаря, и вы сможете легко его умножить
s1 = pd.Series({'A':3 , 'B':5})
s2 = pd.Series({'A':4 , 'B':3})
s3 = s1*s2
print(s3)
A 12
B 15
dtype: int64
В зависимости от того, чего вы хотите достичь, эта функция также может помочь.
def multiply(series, dictionary):
r = {}
for k in series.keys():
if k in dictionary:
r[k] = series[k] * dictionary[k]
return pd.Series(r)