2016-07-13 2 views
2

私の基本的な仕事はベクトルx=[x1,x2,x3,x4](私の場合は、Pandasデータフレームの行で表され、インデックス= 1の行を言うことができます)をスカラーで乗算することですkを入力し、結果を合計すると、 - >x1*k + x2*k + x3*k + x4*kとなります。DataFrame.sumは、数値ではなく、系列を返します

私は1つのステップ(そのような機能/操作はありますか?)でそれを行う機能を見つけられなかったので、私は2つのステップでそれを行います。まず私は、スカラーkで私のベクトルxを掛け、その後、私は結果をまとめる:私はここにある問題の

x_by_k = my_df.loc[[1]]*k 
sum = x_by_k.sum(axis=1) 

つを効果的に、それは数ではあるが、結果としてsumSeries型であるということです。

数字を出力としてこの合計演算を実行する方法はありますか?

私は上記の手順を1つのステップで行うことはできますか? kによって、その後ixsumと複数によってdf

+0

変数に例えば組み込み関数と同じ名前を命名しないでください 'sum' –

答えて

2

IIUC選択行:。

df = pd.DataFrame({'A':[1,2,3], 
        'B':[4,5,6], 
        'C':[7,8,9]}) 

print (df) 
    A B C 
0 1 4 7 
1 2 5 8 
2 3 6 9 

k = 2 
sum = df.ix[1].sum()* k 
print (sum) 
30 
+0

はとそれを包みますかなりの弓: 'sum_row_mul_k =ラムダdf、行、k:df.ix [行] .sum()* k' – piRSquared

+0

それは、ありがとう!だから、ilocの代わりにixを使う。 – Dennis

+0

いいえ、 'iloc'と' ix'は関係ありません。それは数値に変換された '.sum()'でした。 – piRSquared

関連する問題