Skip to content

Commit 842f55e

Browse files
authored
Update 14-looping-data-sets.md
finito
1 parent 4f42f16 commit 842f55e

1 file changed

Lines changed: 42 additions & 42 deletions

File tree

episodes/14-looping-data-sets.md

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ exercises: 10
88
::::::::::::::::::::::::::::::::::::::: objectives
99

1010
- Essere in grado di leggere e scrivere espressioni di globbing che corrispondono a
11-
insiemi di file.
11+
insiemi di file.
1212
- Usare glob per creare elenchi di file.
1313
- Scrivere cicli for per eseguire operazioni sui file dati i loro nomi in un elenco.
1414

1515
::::::::::::::::::::::::::::::::::::::::::::::::::
1616

1717
:::::::::::::::::::::::::::::::::::::::: questions
1818

19-
- Come si possono elaborare molti set di dati con un solo comando?
19+
- Come si possono elaborare molti insiemi di dati con un solo comando?
2020

2121
::::::::::::::::::::::::::::::::::::::::::::::::::
2222

@@ -55,18 +55,15 @@ dtype: float64
5555

5656
## Usare [`glob.glob`](https://docs.python.org/3/library/glob.html#glob.glob) per trovare insiemi di file i cui nomi corrispondono a uno schema.
5757

58-
- In Unix, il termine "globbing" significa "corrispondenza di un insieme di file con uno
59-
schema".
58+
- In Unix, il termine "globbing" significa "corrispondenza di un insieme di file con uno schema".
6059
- Gli schemi più comuni sono:
6160
- `*` che significa "corrisponde a zero o più caratteri"
6261
- `?` che significa "corrisponde esattamente a un carattere"
6362
- La libreria standard di Python contiene il modulo
64-
[`glob`](https://docs.python.org/3/library/glob.html) per fornire funzionalità di
65-
pattern matching
66-
- Il modulo [`glob`](https://docs.python.org/3/library/glob.html) contiene una funzione,
67-
chiamata anche `glob`, per la ricerca di pattern di file
68-
- Ad esempio, `glob.glob('*.txt')` corrisponde a tutti i file nella directory corrente i
69-
cui nomi terminano con `.txt`.
63+
[`glob`](https://docs.python.org/3/library/glob.html) er fornire funzionalità di
64+
corrispondenza rispetto a uno schema.
65+
- Il modulo [`glob`](https://docs.python.org/3/library/glob.html) contiene una funzione, chiamata anche `glob`, per la ricerca di file tramite schema.
66+
- Ad esempio, `glob.glob('*.txt')` corrisponde a tutti i file nella directory corrente i cui nomi terminano con `.txt`.
7067
- Il risultato è un elenco (eventualmente vuoto) di stringhe di caratteri.
7168

7269
```python
@@ -91,7 +88,7 @@ all PDB files: []
9188
## Usare `glob` e `for` per elaborare gruppi di file.
9289

9390
- Aiuta molto se i file sono nominati e memorizzati in modo sistematico e coerente, in
94-
modo che semplici modelli trovino i dati giusti.
91+
modo che semplici schemi trovino i dati giusti.
9592

9693
```python
9794
for filename in glob.glob('data/gapminder_*.csv'):
@@ -108,10 +105,10 @@ data/gapminder_gdp_europe.csv 973.5331948
108105
data/gapminder_gdp_oceania.csv 10039.59564
109106
```
110107

111-
- Questo include tutti i dati, così come i dati per regione.
108+
- Questo include tutti i dati, compresi i dati per regione.
112109
- 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.
115112

116113
::::::::::::::::::::::::::::::::::::::: challenge
117114

@@ -152,8 +149,7 @@ for filename in glob.glob('data/*.csv'):
152149
print('smallest file has', fewest, 'records')
153150
```
154151

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.
157153

158154
::::::::::::::: solution
159155

@@ -169,7 +165,7 @@ for filename in glob.glob('data/*.csv'):
169165
print('smallest file has', fewest, 'records')
170166
```
171167

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
173169
dei numeri con cui si ha a che fare, ma questo potrebbe portare a problemi se si
174170
riutilizza il codice con numeri più grandi. Python consente di utilizzare l'infinito
175171
positivo, che funzionerà indipendentemente dalla grandezza dei numeri. Quali altre
@@ -185,49 +181,56 @@ stringhe speciali riconosce la funzione [`float`][float-function]?
185181

186182
## Confronto dei dati
187183

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.
192185

193186

194187
::::::::::::::: solution
195188

196189
## Soluzione
197190

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
200193
'data/gapminder\_gdp\_a\specific\_region.csv'.
201194

202195
```python
203-
import glob
196+
mport glob
204197
import pandas as pd
205198
import matplotlib.pyplot as plt
206-
fig, ax = plt.subplots(1,1)
199+
200+
fig, ax = plt.subplots(1, 1)
201+
207202
for filename in glob.glob('data/gapminder_gdp*.csv'):
208203
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:
215212
# from pathlib import Path
216213
# region = Path(filename).stem.split('_')[-1]
217214
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
219217
headings = dataframe.columns[1:]
220218
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
222+
# con il parametro `numeric_only=True`
223223
dataframe.mean(numeric_only=True).plot(ax=ax, label=region)
224-
# NOTE: another way of doing this selects just the columns with gdp in their name using the filter method
224+
225+
# NOTA: un altro modo per ottenere lo stesso risultato consiste nel
226+
# selezionare solo le colonne che contengono "gdp" nel nome, usando il metodo filter:
225227
# dataframe.filter(like="gdp").mean().plot(ax=ax, label=region)
226-
# set the title and labels
227-
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')
228231
ax.set_xticks(range(len(years)))
229232
ax.set_xticklabels(years)
230-
ax.set_xlabel('Year')
233+
ax.set_xlabel('Anno')
231234
plt.tight_layout()
232235
plt.legend()
233236
plt.show()
@@ -241,10 +244,7 @@ plt.show()
241244

242245
## Trattare i percorsi dei file
243246

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.
248248

249249
```python
250250
from pathlib import Path

0 commit comments

Comments
 (0)