Я пытаюсь умножить N столбцов в DataFrame по N столбцов в одной и той же DataFrame, а затем разделить результат на один столбец. У меня проблемы с первой частью, см. Пример ниже.Умножение несколько столбцов в DataFrame
import pandas as pd
from numpy import random
foo = pd.DataFrame({'A':random.rand(10),
'B':random.rand(10),
'C':random.rand(10),
'N':random.randint(1,100,10),
'X':random.rand(10),
'Y':random.rand(10),
'Z':random.rand(10), })
foo[['A','B','C']].multiply(foo[['X','Y','Z']], axis=0).divide(foo['N'], axis=0)
То, что я пытаюсь получить на это столбцам умножение (т.е. A*X
, B*Y
, C*Z
) Результат не матрица N колонка, но 2н один, где столбцы I пытаемся умножить добавляются в DataFrame, и все записи имеют NaN
значения, например, так:
A B C X Y Z
0 NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN
5 NaN NaN NaN NaN NaN NaN
6 NaN NaN NaN NaN NaN NaN
7 NaN NaN NaN NaN NaN NaN
8 NaN NaN NaN NaN NaN NaN
9 NaN NaN NaN NaN NaN NaN
Что здесь происходит, и как это сделать столбцы умножения?
Проблема здесь состоит в том, что выравнивание будет происходить там, где у вас есть имена столбцов или значения индекса, здесь значения индекса отлично это тот факт, у вас есть имена столбцов, как вы перемножения столбцов, где имена столбцов Ф.О. не согласны результат это 'NaN' вам нужно преобразовать в значения numpy массива, обратившись к атрибуту' .values', как ответ Александра – EdChum