- risultato in una cella
si filtra il dataframe per righe e poi si fa la somma
(vedi python - Dataframe - dati - righe - filtro righe)
procedura
- si crea il dataframe filtrato per le righe che si vuole
df =xl("tabella[#All]", headers=True)
df = df[df["nome colonna1"] == "valore1"]
df = df[df["nome colonna2"] == "valore2"]
- e poi alla fine si fa la somma della colonna che si vuole sommare
df['colonna da sommare'].sum()
esempio: filtro multiplo per città e amici e sommo l'età
df = xl("MiaTabella[#All]]", headers=True) creo dataframe della tabella
df = df[df["colonna città"] == "Roma"] filtro righe con città Roma
df = df[df["colonna amici"].str.contains("scuola")] filtro di nuovo le righe con la colonna amici che contiene il testo "scuola"
df["colonna età"].sum() somma colonna età filtrata
- risultato in una colonna tabella
si filtra il dataframe di origine per righe usando le colonne della tabella in uso come parametri della somma
(vedi python - Dataframe - dati - righe - filtro righe)
procedura
- si crea il dataframe completo della tabella di origine esterno dalla tabella di destinazione
meglio farlo fuori dala tabella in uso così hai maggiori prestazioni non dovendo Excel ricreare il dataframe per ogni riga
df =xl("Dati[#All]", headers=True)
- nella colonna della tabella di destinaizone inserisci un codice Python che crea i filtri man mano della tabella di origine e fa la somma
si usa il carattere @ per far rifimento al valore della colonna nella stessa riga
dffiltro = df[df["Prodotto"] == xl("[@Prodotto]")]
dffiltro = dffiltro[dffiltro["Città"] == xl("[@Città]")]
dfsomma = dffiltro["Costo"].sum()
esempio: filtro multiplo per città e amici e sommo l'età
esterno H1
df =xl("Dati[#All]", headers=True) creo dataframe della tabella
nella colonna
dffiltro = df[df["Prodotto"] == xl("[@Prodotto]")]
dffiltro = dffiltro[dffiltro["Città"] == xl("[@Città]")]
dfsomma = dffiltro["Costo"].sum()
- risultato in una colonna aggiunta in un filtro dinamico
in un dataframe tipo filtro dinamico (ex. una lista unici)
si vuole aggiungere una colonna con somma filtrata (SOMMA.PIù.SE) usando come parametro una delle colonne
come fare una somma usando un intervallo # come parametro
procedura
- crea un datraframe gruppo .groupby
occorre per prima cosa creare un gruppo .groupby del dataframe con le colonne da usare come filtro e la somma della colonna dei valori da sommare
- si fa una LEFT query join .merge
(vedi Python - dataframe - unione - query (xlookup))
crea un dataframe con a sinistra il dataframe completo, e a destra una colonna del dataframe gruppo con le somme filtrate
esempio
df = xl(...) creo un daframe completo
dfsommafiltrata = df.groupby(by="colonna filtro")["colonna valori"].sum() dataframa gruppo per una colonna filtro e sommando i valori
df = df.merge(dfsommafiltrata,how="left",on="colonna filtro") left join