데이터 프레임의 행과 다른 데이터 프레임의 열

Nov 15 2020

나는 각 제품의 가중 평균을 각 사람에게 구하려고 노력했습니다. 따라서 Tom의 경우 20x1.0 + 19x2.0 + 10x3.0이어야하며 각 제품별로 가중치 * 제품도 갖기를 바랍니다.

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) 

나는 시도 pd.DataFrame.multiply(df, df2, axis = 1)했지만 모든 값에 대해 NaN을 얻었습니다.

답변

1 ColeHoward Nov 15 2020 at 03:13

색인을 정렬하면 df2문제가 해결됩니다. 그리고 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

비슷한 질문 : pandas에서 행에있는 모든 요소의 가중치 합계를 계산하는 방법은 무엇입니까?