Skip to header Skip to main navigation Salta al contenuto principale Skip to footer

Menu profilo utente

  • Accedi
Home
Informatica Consapevole ed Ecosostenibile. Perchè l'informazione sia un bene per l'umanità.

Navigazione principale

  • Home
  • I nostri corsi
  • Drupal
    • Cos'e' Drupal
    • Documentazione
    • Moduli utili per Drupal
  • Ubuntu
    • Che cos'e' Ubuntu
    • Come fare
    • Link utili su Linux e Ubuntu
  • Come Fare
    • Apache
    • Audio
    • CSS - Fogli di Stile
    • Gimp
    • Libre Office
    • Mozilla Thunderbird
    • MySQL MariaDB
    • Tutorial Microsoft
    • Video
    • WEB, Internet
  • Chi sono

Microsoft Power BI - Python

Briciole di pane

  • Home
  • Tutorial Microsoft
  • Microsoft Power BI - Python

Requisiti — windows 11

Python: 3.7 – 3.11 (64-bit)
Power BI Desktop: Versione recente (aggiornata)
Librerie obbligatorie: pandas · matplotlib
Timeout script: Max 30 minuti

 

Pulizia e trasformazione con pandas e Power Query

import pandas as pd

df = dataset.copy()

# --- 1. PULIZIA ---
df = df.drop_duplicates()
df = df.dropna(subset=['vendite', 'regione', 'prodotto'])
df = df[df['vendite'] > 0]

# --- 2. NORMALIZZAZIONE TESTO ---
cols_testo = ['regione', 'categoria', 'prodotto', 'venditore']
for col in cols_testo:
   df[col] = df[col].str.strip().str.title()

# --- 3. COLONNE CALCOLATE ---
df['vendite_iva']  = (df['vendite'] * 1.22).round(2)
df['costo_totale'] = df['costo'] * df['quantita']
df['margine']      = (df['vendite'] - df['costo_totale']).round(2)
df['margine_pct']  = ((df['margine'] / df['vendite']) * 100).round(1)

# --- 4. TIPO CORRETTO PER LE DATE ---
df['mese_num'] = df['mese_num'].astype(int)

print(f"Dataset pronto: {len(df)} righe, {len(df.columns)} colonne")
print(df.dtypes)

dataset = df


 

 

Grafico personalizzato con matplotlib

Inserito tramite "Oggetto visivo Python" nel pannello visualizzazioni. Matplotlib produce il grafico direttamente nel canvas.

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker

# dataset è già disponibile come DataFrame
df = dataset.groupby('mese')['vendite'].sum().reset_index()
df = df.sort_values('mese')

fig, ax = plt.subplots(figsize=(8, 4))

bars = ax.bar(df['mese'], df['vendite'],
             color='#378ADD', edgecolor='none', width=0.6)

ax.set_xlabel('Mese', fontsize=10)
ax.set_ylabel('Vendite (€)', fontsize=10)
ax.set_title('Vendite mensili', fontsize=12, fontweight='bold')
ax.yaxis.set_major_formatter(
   mticker.FuncFormatter(lambda x, _: f'{x:,.0f}€'))
ax.spines[['top', 'right']].set_visible(False)
ax.grid(axis='y', alpha=0.3)

plt.tight_layout()
plt.show()
 

 

 

Previsione con scikit-learn

import pandas as pd
from sklearn.linear_model import LinearRegression
import numpy as np

df = dataset.copy()
df = df.dropna(subset=['mese_num', 'vendite'])

# Feature e target
X = df[['mese_num']].values
y = df['vendite'].values

# Addestramento modello
model = LinearRegression()
model.fit(X, y)

# Previsioni sui dati esistenti
df['vendite_previste'] = model.predict(X).round(2)

# Previsione per i prossimi 3 mesi
mesi_futuri = np.array([[df['mese_num'].max() + i]
                        for i in range(1, 4)])
previsioni = model.predict(mesi_futuri).round(2)
df_futuro = pd.DataFrame({
   'mese_num': mesi_futuri.flatten(),
   'vendite': [None]*3,
   'vendite_previste': previsioni
})

dataset = pd.concat([df, df_futuro], ignore_index=True)

 

  • Power Query — per trasformare e pulire dati prima del modello (il DataFrame dataset entra ed esce)
  • Oggetto visivo Python — per creare grafici custom con matplotlib/seaborn direttamente nel report
  • Script Python — per operazioni avanzate come ML, clustering, o previsioni

Limitazioni importanti da comunicare in aula:

  • Gli script vengono rieseguiti a ogni aggiornamento dei dati
  • Nessun accesso a internet durante l'esecuzione
  • Le visualizzazioni Python non sono interattive come quelle native di Power BI
  • Il timeout massimo è 30 minuti per script

Librerie consigliate da far installare preventivamente:

pip install pandas matplotlib scikit-learn seaborn numpy
 

 

 

Ecco il dataset! Contiene 120 righe di dati di vendita realistici, pensati apposta per i tre esercizi della guida:

Colonne disponibili:

ColonnaTipoDescrizione
mese_numNumero1–12, per la regressione ML
meseTestoNome del mese in italiano
regioneTesto5 regioni italiane
categoriaTestoElettronica, Abbigliamento, Alimentari
prodottoTesto10 prodotti distinti
venditeNumeroImporto vendite in €
quantitaNumeroUnità vendute
costoNumeroCosto unitario in €
venditoreTesto5 venditori con nomi realistici

Cosa permettono di fare gli esercizi:

  • Trasformazione — pulizia, calcolo vendite_iva, normalizzazione regione
  • Visualizzazione — grafico vendite mensili aggregato per mese
  • Machine Learning — regressione su mese_num → vendite con previsione mesi futuri

I dati seguono un trend crescente durante l'anno (picco a dicembre) per rendere la regressione lineare significativa e visivamente chiara.

 

 

vendite_powerbi.csv (8.26 KB)
Guida_Python_PowerBI_Windows11.pdf (131.77 KB)
installare-python-su-windows.pdf (195.26 KB)

Costellazioni Familiari Animiche e Reiki con Janhu

Costellazioni Familiari Animiche e Reiki con Janhu

www.janhu.it

Tutorial Microsoft

I Nostri Tutorial Esercizi

Tutorial, Esercizi, e molto altro

Noi è io sono la nazione

Noi è io sono la nazione

The One People’s Public Trust

Serverplan

Contatti

email ecommunicationinfo@ecommunication.it
 
contattacicellulare +39 393 9374116
 
TelegramTelegram
 
insegnante - docenteChi Sono

Youtube

visita il canale

L'importanza della formazione aziendale

 

Disclaimer & Avvertenze

  • Contattaci
  • Cookies
  • Informativa Cookies - Cookie Policy

Copyright © 2026 ECOmmunication - All rights reserved

Creato e mantenuto da Dott. Silvio Crispiatico