You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Questo include tutti i dati, così come i dati per regione.
108
+
- Questo include tutti i dati, compresi i dati per regione.
112
109
- Utilizzare uno schema più specifico negli esercizi per escludere l'intero set di dati.
113
-
-Ma si noti che il minimo dell'intero insieme di dati è anche il minimo di uno degli
114
-
insiemi di dati, il che è un bel controllo di correttezza.
110
+
-Si noti che il minimo dell'intero insieme di dati è anche il minimo di uno degli
111
+
insiemi di dati: un utile controllo di correttezza.
115
112
116
113
::::::::::::::::::::::::::::::::::::::: challenge
117
114
@@ -152,8 +149,7 @@ for filename in glob.glob('data/*.csv'):
152
149
print('smallest file has', fewest, 'records')
153
150
```
154
151
155
-
Si noti che il metodo [`DataFrame.shape()`][shape-method] restituisce una tupla con il
156
-
numero di righe e colonne del data frame.
152
+
Si noti che l’attributo [`DataFrame.shape()`][shape-method] restituisce una tupla con il numero di righe e colonne del data frame.
157
153
158
154
::::::::::::::: solution
159
155
@@ -169,7 +165,7 @@ for filename in glob.glob('data/*.csv'):
169
165
print('smallest file has', fewest, 'records')
170
166
```
171
167
172
-
Si potrebbe aver scelto di inizializzare la variabile `fewest` con un numero maggiore
168
+
Si potrebbe aver scelto di inizializzare la variabile fewest con un numero maggiore
173
169
dei numeri con cui si ha a che fare, ma questo potrebbe portare a problemi se si
174
170
riutilizza il codice con numeri più grandi. Python consente di utilizzare l'infinito
175
171
positivo, che funzionerà indipendentemente dalla grandezza dei numeri. Quali altre
@@ -185,49 +181,56 @@ stringhe speciali riconosce la funzione [`float`][float-function]?
185
181
186
182
## Confronto dei dati
187
183
188
-
Scrivere un programma che legga i set di dati regionali e tracci il PIL medio pro capite
189
-
di ogni regione nel tempo in un unico grafico. Pandas solleva un errore se incontra
190
-
colonne non numeriche nel calcolo di un dataframe, quindi potrebbe essere necessario
191
-
filtrare tali colonne o dire a pandas di ignorarle.
184
+
Scrivere un programma che legga i set di dati regionali e tracci il PIL medio pro capite di ogni regione nel tempo in un unico grafico. Pandas solleva un errore se incontra colonne non numeriche nel calcolo di un dataframe, quindi potrebbe essere necessario filtrare tali colonne o dire a pandas di ignorarle.
192
185
193
186
194
187
::::::::::::::: solution
195
188
196
189
## Soluzione
197
190
198
-
Questa soluzione costruisce un'utile legenda usando il metodo [stringa
199
-
`split`][split-method]per estrarre il`region` dal percorso
191
+
Questa soluzione costruisce un'utile legenda usando il metodo di [stringa
192
+
`split`][split-method]pper estrarre `region` dal percorso
200
193
'data/gapminder\_gdp\_a\specific\_region.csv'.
201
194
202
195
```python
203
-
import glob
196
+
mport glob
204
197
import pandas as pd
205
198
import matplotlib.pyplot as plt
206
-
fig, ax = plt.subplots(1,1)
199
+
200
+
fig, ax = plt.subplots(1, 1)
201
+
207
202
for filename in glob.glob('data/gapminder_gdp*.csv'):
208
203
dataframe = pd.read_csv(filename)
209
-
# extract <region> from the filename, expected to be in the format 'data/gapminder_gdp_<region>.csv'.
210
-
# we will split the string using the split method and `_` as our separator,
211
-
# retrieve the last string in the list that split returns (`<region>.csv`),
212
-
# and then remove the `.csv` extension from that string.
213
-
#NOTE: the pathlib module covered in the next callout also offers
214
-
# convenient abstractions for working with filesystem paths and could solve this as well:
204
+
# Estrai la <regione> dal nome del file, che si trova nel formato
205
+
# 'data/gapminder_gdp_<regione>.csv'.
206
+
# Divideremo la stringa usando il metodo split con '_' come separatore,
207
+
# prenderemo l’ultima parte della lista restituita (che sarà '<regione>.csv')
208
+
# e poi rimuoveremo l’estensione '.csv' da quella stringa.
209
+
# NOTA: il modulo pathlib, presentato nel prossimo riquadro, offre
210
+
# anche astrazioni pratiche per lavorare con i percorsi dei file e
211
+
# può risolvere questo problema nello stesso modo:
215
212
# from pathlib import Path
216
213
# region = Path(filename).stem.split('_')[-1]
217
214
region = filename.split('_')[-1][:-4]
218
-
# extract the years from the columns of the dataframe
215
+
216
+
# Estrai gli anni dai nomi delle colonne del dataframe
219
217
headings = dataframe.columns[1:]
220
218
years = headings.str.split('_').str.get(1)
221
-
# pandas raises errors when it encounters non-numeric columns in a dataframe computation
222
-
# but we can tell pandas to ignore them with the `numeric_only` parameter
219
+
220
+
# Pandas genera un errore quando incontra colonne non numeriche
221
+
# durante le operazioni su un dataframe, ma possiamo dirgli di ignorarle
ax.set_title('GDP Per Capita for Regions Over Time')
228
+
229
+
# Imposta il titolo e le etichette del grafico
230
+
ax.set_title('PIL pro capite per regione nel tempo')
228
231
ax.set_xticks(range(len(years)))
229
232
ax.set_xticklabels(years)
230
-
ax.set_xlabel('Year')
233
+
ax.set_xlabel('Anno')
231
234
plt.tight_layout()
232
235
plt.legend()
233
236
plt.show()
@@ -241,10 +244,7 @@ plt.show()
241
244
242
245
## Trattare i percorsi dei file
243
246
244
-
Il modulo [`pathlib`][pathlib-module] fornisce utili astrazioni per la manipolazione di
245
-
file e percorsi, come la restituzione del nome di un file senza l'estensione. Questo è
246
-
molto utile quando si esegue il looping di file e directory. Nell'esempio seguente,
247
-
creiamo un oggetto `Path` e ne ispezioniamo gli attributi.
247
+
Il modulo [`pathlib`][pathlib-module] fornisce pratiche astrazioni per la gestione di file e percorsi, come ad esempio l’ottenimento del nome di un file senza estensione. Questo risulta particolarmente utile quando si eseguono cicli su file e directory. Nell’esempio seguente creiamo un oggetto `Path` e ne ispezioniamo alcuni attributi.
0 commit comments