減算

2017-07-21 17 views
0

私は互いから2匹のパンダのデータフレームを減算するしようとしますが、唯一のNaN結果を取得しています:減算

Dataframe 1: 
    alpha beta 
0  1  4 
1  2  5 
2  3  6 

Dataframe 2: 
    gamma 
0  7 
1  8 
2  9 

データフレームの操作:

df3=df1-df2 

結果:

alpha beta gamma 
0 NaN NaN NaN 
1 NaN NaN NaN 
2 NaN NaN NaN 

しかし、すべてをnumpy行列に変換すると、それは動作します。

行列演算:

matrix3=df1.as_matrix(['alpha','beta'])-df2.as_matrix(['gamma']) 

結果:私はパンダでこの作業を行うことができますどのように

[[-6 -3] 
[-6 -3] 
[-6 -3]] 

答えて

3

これらの作業のどちらか:

df['a'] = df['a'] - df2['gamma'] 
df['b'] = df['b'] - df2['gamma'] 

-

df.sub(df2.iloc[:,0],axis=0) 
+0

最初の可能性は動作しますが、私の質問はなかったです。特に列数が増えると複雑になります。 2番目のものは私が必要としていたことをexatlyと質問に答えます。 - 私はそれを少しわかりませんが。 – Francesca

+0

最初の方法では、ループ内の各列を常に掛けることができますか? –