2017-08-14 1 views
0

Je cherche une syntaxe pandas pour faire l'agrégation suivante à Pandas DataFrame. Je ne peux pas trouver un exemple de la façon d'accomplir la requête sql suivante chez les pandas.syntaxe pandas pour une requête sql plus complexe

#sum and divide 
select 
click, 
ctr, 
SUM(click)/SUM(imp) as ctr 
from mytable 
group by website 

#normalize each subgroup 
select 
imp, 
imp/SUM(imp) Over (partition website) as n_imp 
from mytable 
+0

s'il vous plaît fournir un ensemble d'échantillons de données et les données souhaitées définies – MaxU

+0

OMI le premier SQL est erronous comme '' click' et ctr' ne sont pas dans la groupe par clause – MaxU

Répondre

1

SQL:

#normalize each subgroup 
select 
imp, 
imp/SUM(imp) Over (partition website) as n_imp 
from mytable 

Pandas:

df[['website','imp']].assign(n_imp=df['imp']/df.groupby('website')['imp'].transform('sum')) 
0

pandas géants a une fonction read_sql qui vous permet de écrire la requête dans SQL et tirer le résultat dans une trame de données.