2017-03-05 186 views
1

比率I有一個數據集象下面這樣:分組由大熊貓柱

i_id q_id week_month 
0 1  NaN  27-7 
1 2  NaN  27-7 
2 3  NaN  27-7 
3 4  1.0  27-7 
4 5  2.0  27-7 

欲基本上由可變Week_month組,並獲得(q_id/i_id_)的該組的相應比率。就像上面我們就必須像

week_month rate 
27-7   2/5 

因爲q_id只有兩個有效身份證件和i_id有5所以速度定義爲q_id/i_id。

我可以很容易地做到這一點,但我不想爲此使用Pandsql。任何熊貓的方式?

回答

1

如果我理解正確,您可以使用applycount,因爲count將獲得每個組的每列中的非NA值的總數。

df.groupby('week_month').apply(lambda x: x.q_id.count()/x.i_id.count()) 

演示

>>> df.groupby('week_month').apply(lambda x: x.q_id.count()/x.i_id.count()) 

week_month 
27-7 0.4 
dtype: float64 

當然這是不使關於每個組的實際內容除了非NA/NA的有效性的任何假設。

+0

奇怪的是,你得到的輸出爲float,而我不得不乘以1.0的分子或分母得到浮點數,否則它給0,即使q_id是浮點數 – Baktaawar

+0

@Baktaawar嗯,有趣的是,我想這取決於什麼正是你想要做的。 – miradulo