2016-09-07 4 views
-6

:その上の任意の助けSQL /パンダ同等

select column1, 
     sum(column2) as A, 
     count(distinct column3) as B, 
     sum(column2)/count(distinct column3) as C 
from  table1 
group by column1 

感謝!!

答えて

0

私はsum(column2)/count(distinct column3) as C部分は同じ単一のステップで行うことができますが、あなたは簡単に2つの段階でそれを行うことができますかわからない:

デモ:

In [47]: df = pd.DataFrame(np.random.randint(0,5,size=(15, 3)), columns=['c1','c2','c3']) 
In [48]: df 
Out[48]: 
    c1 c2 c3 
0 4 0 3 
1 2 3 2 
2 1 2 3 
3 3 3 0 
4 1 0 4 
5 1 1 1 
6 2 3 3 
7 2 2 2 
8 4 0 0 
9 1 1 0 
10 1 3 0 
11 4 3 1 
12 0 0 3 
13 3 1 0 
14 4 3 1 

In [49]: x = df.groupby('c1').agg({'c2':'sum', 'c3': 'nunique'}).reset_index().rename(columns={'c2':'A', 'c3':'B'}) 

In [50]: x 
Out[50]: 
    c1 A B 
0 0 0 1 
1 1 7 4 
2 2 8 2 
3 3 4 1 
4 4 6 3 

In [51]: x['C'] = x.A/x.B 

In [52]: x 
Out[52]: 
    c1 A B  C 
0 0 0 1 0.00 
1 1 7 4 1.75 
2 2 8 2 4.00 
3 3 4 1 4.00 
4 4 6 3 2.00 
+0

本当にありがとうございましたが、正常に動作します!私は 'agg'メソッドで同時に2列目と3列目を参照する方法を考えていました... 2つのステップでそれを行うことは、まだOKです。私のパンダのスキルをアップグレードしていただきありがとうございます! –