Corso
.lower() è un metodo integrato di Python utilizzato principalmente per la gestione delle stringhe. Il metodo .lower() non accetta argomenti e restituisce la versione in minuscolo della stringa fornita, convertendo ogni carattere maiuscolo in minuscolo. Se nella stringa non ci sono caratteri maiuscoli, restituisce la stringa originale.
Nel contesto di pandas, il metodo .str.lower() è una funzione specializzata pensata per operare su oggetti Series di pandas (come le colonne di un DataFrame). Applica la funzionalità di .lower() a ciascun elemento di tipo stringa nella Series, rendendolo uno strumento essenziale per standardizzare i dati testuali.
Esercitati con la conversione di maiuscole/minuscole in Python con questo esercizio pratico.
Usare str.lower() in pandas
Quando lavori con i DataFrame di pandas, il metodo str.lower() viene spesso applicato all'intera colonna di stringhe per uniformare la formattazione del testo. Vediamo un esempio per capire come funziona.
Ecco un dataset di esempio che rappresenta i prezzi di diversi frutti:
import pandas as pd
# Create a DataFrame
fruit_price = pd.DataFrame({
'name': [
'Apple', 'Banana', 'Orange', 'Watermelon',
'Plum', 'Blueberries', 'Dragonfruit', 'Kiwi'
],
'price_usd': [0.88, 0.23, 0.68, 3.98, 0.96, 5.16, 5.27, 1.12]
})
name price_usd
0 Apple 0.88
1 Banana 0.23
2 Orange 0.68
3 Watermelon 3.98
4 Plum 0.96
5 Blueberries 5.16
6 Dragonfruit 5.27
7 Kiwi 1.12
Possiamo applicare il metodo str.lower() per convertire tutte le voci della colonna name in minuscolo. Ecco come si fa:
fruit_price['name'] = fruit_price['name'].str.lower()
print(fruit_price)
Ecco l'output:
name price_usd
0 apple 0.88
1 banana 0.23
2 orange 0.68
3 watermelon 3.98
4 plum 0.96
5 blueberries 5.16
6 dragonfruit 5.27
7 kiwi 1.12
Come puoi vedere, tutte le voci nella colonna name sono ora uniformate in minuscolo.
Esempio interattivo: cambiare le maiuscole/minuscole in un dataset di film
Esploriamo un altro esempio. Immagina di lavorare con un dataset di film. Ogni riga del dataset rappresenta un film, con colonne per il titolo (movie_title), il genere (movie_genre) e la durata (movie_length). Ecco il dataset iniziale:
import pandas as pd
# Create a DataFrame
movies = pd.DataFrame({
'movie_title': [
'The Sumif All Fears', 'The Seaborn Identity', 'The Matrices',
"There's Something About Merging", 'Mamma Median!',
'Harry Plotter', 'Kung Fu Pandas', 'While You Were Sorting',
'10 Things I Hate About UNIX'
],
'movie_genre': [
'Action', 'Action', 'Action', 'Comedy', 'Comedy',
'Kids', 'Kids', 'Romance', 'Romance'
],
'movie_length': [124, 119, 136, 119, 108, 159, 92, 103, 97]
})
Vogliamo uniformare il testo nella colonna movie_title convertendo tutti i titoli in minuscolo. Ecco come possiamo farlo usando il metodo .str.lower():
# Change movie_title column to lowercase
movies['movie_title'] = movies['movie_title'].str.lower()
# Look at the change
print(movies)
Eseguendo il codice qui sopra, si ottiene il seguente risultato:
movie_title movie_genre movie_length
0 the sumif all fears Action 124
1 the seaborn identity Action 119
2 the matrices Action 136
3 there's something about merging Comedy 119
4 mamma median! Comedy 108
5 harry plotter Kids 159
6 kung fu pandas Kids 92
7 while you were sorting Romance 103
8 10 things i hate about unix Romance 97
Applicando .str.lower(), ci assicuriamo che la colonna movie_title sia formattata in modo uniforme, cosa utile per attività come filtrare, confrontare o eseguire operazioni case-insensitive.
Per saperne di più su come unire i DataFrame di pandas in Python, guarda questo video tratto dal nostro corso Python for Spreadsheet Users.
Questo contenuto è tratto dal corso Python for Spreadsheet Users di DataCamp, a cura di Chris Cardillo.
Domande frequenti su minuscole in Python
Che cosa sono le minuscole in Python?
È un tipo di scrittura in cui tutte le lettere di una stringa sono minuscole. L'opposto delle minuscole sono le maiuscole, quando tutte le lettere di una stringa sono capitali. Se invece in una stringa sono presenti sia minuscole che maiuscole, si parla di caso misto.
Come rendere una stringa minuscola in Python?
Usando il metodo integrato delle stringhe di Python lower() sulla stringa o su una variabile che la rappresenta. Ad esempio, 'PythoN'.lower() restituirà 'python'. Questo metodo non accetta argomenti.
Come rendere minuscole tutte le stringhe in una lista Python?
Usando una list comprehension. Ad esempio, [x.lower() for x in ['Python', 'R', 'SQL']] restituirà ['python', 'r', 'sql']. È importante notare che tutti gli elementi della lista devono essere di tipo stringa, altrimenti il programma genererà un errore.
Come rendere minuscole tutte le stringhe in una Series di Python?
È possibile usare una list comprehension anche su una Series ([x.lower() for x in pd.Series(['Python', 'R', 'SQL'])]), ma un approccio migliore è usare il metodo Series.str.lower(). Ad esempio, pd.Series(['Python', 'R', 'SQL']).str.lower() restituirà:
0 python
1 r
2 sql
dtype: object
È importante notare che tutti i valori dell'oggetto Series devono essere di tipo stringa e non sono ammessi valori mancanti, altrimenti il programma genererà un errore.
Come verificare se tutte le lettere in una stringa Python sono minuscole?
Usando il metodo integrato delle stringhe di Python islower() sulla stringa o su una variabile che la rappresenta. Ad esempio, 'Python'.islower() restituirà False poiché nella stringa è presente una lettera maiuscola, mentre 'python'.islower() restituirà True.
Che tipo di dato restituiscono i metodi lower() e islower()?
Il metodo lower() restituisce una stringa, mentre il metodo islower() restituisce un booleano.
I metodi lower() e islower() funzionano con i numeri?
No. L'applicazione di questi metodi ai numeri (ad es., 1.lower()) o ad altri tipi di dati che non sono stringhe genererà un errore.
Cosa succede se applichiamo i metodi lower() o islower() a una stringa contenente cifre, spazi o caratteri speciali?
Il metodo lower() lascia tali caratteri invariati, mentre islower() li ignora. Ad esempio, 'Python1'.lower() restituirà 'python1', 'Python & R'.lower() restituirà 'python & r' e 'python & r'.islower() restituirà True. Funziona anche con stringhe contenenti emoji: 'I ❤️ Python'.lower() restituirà 'i ❤️ python'.
Quali sono i metodi opposti a lower() e islower() per rendere una stringa maiuscola?
upper() e isupper(). La sintassi e i casi d'uso di questi metodi sono identici a lower() e islower(); inoltre funzionano solo sul tipo di dato stringa e ignorano cifre, spazi o caratteri speciali all'interno di una stringa. Per rendere maiuscole tutte le stringhe in una Series di Python, usa il metodo Series.str.upper().

