Linhas de coluna de tempos de dataframe de outro dataframe
Nov 15 2020
Tentei obter a média ponderada de cada produto para cada pessoa. Portanto, para Tom, ele deve ter 20x1,0 + 19x2,0 + 10x3,0. Também espero ter os pesos * produto de cada produto também.
data = {'Name':['Tom', 'nick', 'krish', 'jack'], '1stproducts':[20, 21, 19, 18], '2ndproduct': [19, 28, 10, 10],
'3rdproduct': [10, 18, 20, 30]}
df = pd.DataFrame(data)
weights = {"weights": [1.0, 2.0, 3.0]}
df2 = pd.DataFrame(weights)
Eu tentei pd.DataFrame.multiply(df, df2, axis = 1), mas consegui NaN para todos os valores.
Respostas
1 ColeHoward Nov 15 2020 at 03:13
Alinhar o índice em df2resolverá seu problema. E referenciando a coluna de pesos em df2.
df2 = pd.DataFrame(weights, index=['1stproducts', '2ndproduct', '3rdproduct'])
In [26]: df[['1stproducts', '2ndproduct', '3rdproduct']] * df2.weights
Out[26]:
1stproducts 2ndproduct 3rdproduct
0 20.0 38.0 30.0
1 21.0 56.0 54.0
2 19.0 20.0 60.0
3 18.0 20.0 90.0
Pergunta semelhante aqui: Como calcular a soma ponderada de todos os elementos em uma linha em pandas?
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas