2016-12-02 15 views
1

私は、A列の各行をA列の合計で除算し、それをデータフレーム内の新しい列にするデータフレームを持っています。Pandas DataframeのColumnをColumnの合計で割ります。

Example: 

     Col A New Col 
     2  .22 
     3  .33 
     4  .44 
Total = 9  1.00 

IはコルAを合計することを試み、次に「総」で除算しようとしたが、合計列が、行はないので、それが機能しませんでした。新しい列内の各行に対してNaNを取得するだけです。

df['New Col']= (df['ColA']/df.loc['Total']) 

は、私はあなたにもおそらく同様にそれを行うには、オンライン何かを見つけることができませんでしたかわからない合計行を作成するのではなく、1行のコードの中に和演算を統合することができます知っています。

df['New Col']= (df['ColA']/df.sum()) 

アイデア?

答えて

3
df['new'] = df['ColA']/df['ColA'].sum() 

はあなたが非常に接近している

1

を動作するはずです。

>>> df 
    Col A New Col 
0  2 0.222222 
1  3 0.333333 
2  4 0.444444 

あなたがdf.sum()を行う場合は、列ごとに合計でシリーズを得る:あなたはこのようになります。データフレームにCol Aシリーズに

df['New Col'] = df['Col A']/df['Col A'].sum() 

結果をsum()を行いたい

>>> df.sum() 
Col A  9.0 
New Col 1.0 
dtype: float64 
関連する問題