2017-01-15 19 views
0

コミュニティごとに破水点の割合を計算したいと思います。これまでのところ、私はコミュニティのリストと壊れた水点を得ることができました。フィルタリングされた列の属性の割合を計算する

これは、これまでの私のコードです:

import pandas as pd 

df = pd.DataFrame((data)) 
gb = df.groupby(['water_point_condition']) 
grouped = gb[["communities_villages", "water_point_condition"]].get_group("broken") 
print(grouped) 

結果は次のとおりです。

results

これは私の問題を修正し、私は、コミュニティごとに壊れて水ポイントのパーセンテージを得ることができた。

df = pd.DataFrame(data) 
grouped = df.groupby(['water_point_condition']) 
rank_by_percentage = 100 * df[df.water_point_condition == 'broken'].communities_villages.value_counts()/grouped["water_point_condition"].get_group("broken").count() 
print(rank_by_percentage) 
+0

ようこそStackOverflowへ。この記事を読むには、[素晴らしいパンダの例を提供する方法](http://stackoverflow.com/questions/20109391/how-to-make-good-reproducible-pandas-examples)と[最小で完全で検証可能な例](http://stackoverflow.com/help/mcve)を提供し、それに応じて質問を修正してください。良い質問をする方法(http://stackoverflow.com/help/how-to-ask)も役立つかもしれません。 – jezrael

+0

[groupbyとの合計のパンダのパーセンテージ]の可能な重複(http://stackoverflow.com/questions/23377108/pandas-percentage-of-total-with-groupby)それはそれほどではない場合は、いくつかのコメントとリンクそこ。これはよくある質問です。 – JohnE

+0

私は上記の編集で私のエラーを修正することができました。 – Nate

答えて

0

あなたがグループ化する必要がありますommunities_villagesではなくwater_point_condition

df.groupby('communities_villages')['water_point_condition'].apply(lambda x: (x == 'broken').mean()) 
+0

ありがとうございます@テッドペトロ。私は私のエラーを修正することができた:) – Nate

関連する問題