2017-11-01 5 views
1

私はファンダを使っているthis articleに従っています。パンダのデータフレームの列の割合を取得するにはどうすればよいですか?

著者の状態が存在で

ほとんどのトラフィック停止はバーモントの背後に、全国で2番目に、少なくとも多様な状態作る(周りの94%白であることから予想されるべき、白のドライバでありますメイン州)。白いドライバーが交通停止の約94%を占めるので、白いドライバーと白いドライバーを引き抜くための明確なバイアスはここにありません。しかし、同じ方法論を使って、黒人の運転手がすべての交通停止の約2%を占める一方で、バーモントの人口のわずか1.3%が黒であることがわかります。

しかし、彼はパンダを使ってそれを理解する方法を示していません。

ここで私は私が行うことができることを発見したデータが

In[165: df_vt['driver_race'].value_counts() 
Out[15]: 
White  261339 
Black   5571 
Asian   3446 
Hispanic  2562 
Other   263 
Name: driver_race, dtype: int64 

どのように見えるかの例です:

df_vt.groupby(('driver_race')).size()/len(df_vt) 

私を与えることになる:

ほとんど何です
driver_race 
Asian  0.012614 
Black  0.020393 
Hispanic 0.009378 
Other  0.000963 
White  0.956651 
dtype: float64 

を私は欲しいです(それは私に2%を与えます)が、私は何かを見たいと思っています

White  261339  0.956651 
Black  5571  0.020393 
. 
. 
. 
Other  263  0.000963 

パンダを使ってどうすればいいですか?

答えて

1

かなり簡単です。 value_countsを計算し、それをデータフレームに変換します。次に、パーセンテージ列を計算します。

vc = df_vt['driver_race'].value_counts().to_frame('counts') 
vc['%'] = vc['counts']/vc['counts'].sum() 

vc 

      counts   % 
White  261339 0.956651 
Black  5571 0.020393 
Asian  3446 0.012614 
Hispanic 2562 0.009378 
Other  263 0.000963 
+0

パーフェクト! (私はちょうどあなたの答えを受け入れるために4分以上待たなければなりません:P) –

+0

@WayneWernerああ、あなたはSOPythonのチャットルームから同じウェインです。 –

関連する問題