2016-07-21 3 views
0

Извините, если это простой вопрос.Pandas/Python умножают столбцы на строки

У меня есть два блока данных с одинаковыми столбцами. Мне нужно умножить каждую строку во втором ядре данных на единственную строку в первом.

В конце концов будет больше столбцов разного возраста, поэтому я не хочу просто умножать скаляр.

Я использовал df.multiply() и продолжаю получать NaN для всех значений, предположительно потому, что два df не совпадают по длине.

Есть ли способ умножить каждую строку в одном кадре данных на особую строку в другой?

age 51200000.0 70000000.0 
SFH 
0  0.75  0.25 

.

age    51200000.0 70000000.0 
Lambda         
91.0  0.000000e+00 0.000000e+00 
94.0  0.000000e+00 0.000000e+00 
96.0  0.000000e+00 0.000000e+00 
98.0  0.000000e+00 0.000000e+00 
100.0  0.000000e+00 0.000000e+00 
102.0  0.000000e+00 0.000000e+00 
...  ...   ... 
1600000.0 1.127428e+22 8.677663e+21 
+0

так что вы хотите сказать, что 'df.mul (df1, ось = 1) 'не работает? – EdChum

ответ

0

Вы можете использовать mul по первой строке df1 выбранного iloc:

print (df2.mul(df1.iloc[0])) 

Пример:

print (df1) 
     51200000.0 70000000.0 
age       
0   0.75  0.25 

print (df2) 
     51200000.0 70000000.0 
age       
91.0   1.0   2.0 
94.0   5.0  10.0 
96.0   0.0   0.0 

print (df2.mul(df1.iloc[0])) 
     51200000.0 70000000.0 
age       
91.0  0.75   0.5 
94.0  3.75   2.5 
96.0  0.00   0.0 
Смежные вопросы