Converti la colonna DataFrame di Pandas in lista

Usama Imtiaz 13 settembre 2023
  1. Utilizzare il metodo tolist() per convertire una colonna di DataFrame in una lista
  2. Utilizzare la funzione list() per convertire una colonna di DataFrame in una lista
  3. Utilizzare la proprietà .values per convertire una colonna di DataFrame in una lista
  4. Utilizzare la List Comprehension per convertire una colonna del Dataframe in una lista
  5. Conclusione
Converti la colonna DataFrame di Pandas in lista

Quando si lavora con i DataFrames di Pandas in Python, potresti spesso avere bisogno di convertire una colonna del tuo DataFrame in una lista Python. Questo processo può essere cruciale per varie manipolazioni dei dati e attività di analisi. Fortunatamente, Pandas fornisce diversi metodi per realizzare questa operazione, rendendo facile estrarre i dati necessari in forma di lista.

In questo articolo, esploreremo diversi metodi per convertire una colonna di un DataFrame di Pandas in una lista Python. Illustreremo questi metodi utilizzando un DataFrame di esempio che contiene informazioni su nomi, date di nascita (DOB) e stipendi.

import pandas as pd

data = {
    "Name": ["James", "Michelina", "Marc", "Bob", "Halena"],
    "DOB": ["1/1/2014", "2/1/2014", "3/1/2014", "4/1/2014", "4/1/2014"],
    "Salary": ["1000", "12000", "36000", "15000", "12000"],
}

df = pd.DataFrame(data, columns=["Name", "DOB", "Salary"])

Esploreremo quattro metodi diversi per effettuare questa conversione: utilizzando il metodo tolist(), la funzione list(), la proprietà .values e la list comprehension. Ogni metodo ha i suoi vantaggi, quindi approfondiamo.

Utilizzare il metodo tolist() per convertire una colonna di DataFrame in una lista

Una colonna nel DataFrame di Pandas è una serie di Pandas. Quindi, se abbiamo bisogno di convertire una colonna in una lista, possiamo utilizzare il metodo tolist() nella Serie. tolist() converte la serie del DataFrame di Pandas in una lista.

Nel codice seguente, df['DOB'] restituisce la Serie, o la colonna, con il nome DOB dal DataFrame.

Il metodo tolist() converte la Serie in una lista.

import pandas as pd

df = pd.DataFrame(
    [
        ["James", "1/1/2014", "1000"],
        ["Michelina", "2/1/2014", "12000"],
        ["Marc", "3/1/2014", "36000"],
        ["Bob", "4/1/2014", "15000"],
        ["Halena", "4/1/2014", "12000"],
    ],
    columns=["Name", "DOB", "Salary"],
)

print("Pandas DataFrame:\n\n", df, "\n")

list_of_single_column = df["DOB"].tolist()

print(
    "the list of a single column from the dataframe\n",
    list_of_single_column,
    "\n",
    type(list_of_single_column),
)

Output:

Pandas DataFrame:

         Name       DOB Salary
0      James  1/1/2014   1000
1  Michelina  2/1/2014  12000
2       Marc  3/1/2014  36000
3        Bob  4/1/2014  15000
4     Halena  4/1/2014  12000 

the list of a single column from the dataframe
 ['1/1/2014', '2/1/2014', '3/1/2014', '4/1/2014', '4/1/2014'] 
 <class 'list'>

Utilizzare la funzione list() per convertire una colonna di DataFrame in una lista

Possiamo anche utilizzare la funzione list() per convertire una colonna del DataFrame in una lista, passando il DataFrame alla funzione list().

Utilizzeremo gli stessi dati di cui sopra per illustrare questa metodologia.

import pandas as pd

df = pd.DataFrame(
    [
        ["James", "1/1/2014", "1000"],
        ["Michelina", "2/1/2014", "12000"],
        ["Marc", "3/1/2014", "36000"],
        ["Bob", "4/1/2014", "15000"],
        ["Halena", "4/1/2014", "12000"],
    ],
    columns=["Name", "DOB", "Salary"],
)

print("Pandas DataFrame:\n\n", df, "\n")

list_of_single_column = list(df["DOB"])

print(
    "the list of a single column from the dataframe\n",
    list_of_single_column,
    "\n",
    type(list_of_single_column),
)

Output:

Pandas DataFrame:

         Name       DOB Salary
0      James  1/1/2014   1000
1  Michelina  2/1/2014  12000
2       Marc  3/1/2014  36000
3        Bob  4/1/2014  15000
4     Halena  4/1/2014  12000 

the list of a single column from the dataframe
 ['1/1/2014', '2/1/2014', '3/1/2014', '4/1/2014', '4/1/2014'] 
 <class 'list'>

Utilizzare la proprietà .values per convertire una colonna di DataFrame in una lista

Un altro modo per ottenere questo risultato è utilizzare la proprietà .values.

Scorriamo i passaggi per convertire la colonna ‘Salary’ di questo DataFrame in una lista Python utilizzando la proprietà .values.

La proprietà .values di una serie di Pandas restituisce una rappresentazione in forma di array di NumPy dei dati. Per convertirlo in una lista Python, è possibile utilizzare il metodo .tolist(). Ecco come si fa:

salary_list = df["Salary"].values.tolist()

Ecco il codice completo:

import pandas as pd

data = {
    "Name": ["James", "Michelina", "Marc", "Bob", "Halena"],
    "DOB": ["1/1/2014", "2/1/2014", "3/1/2014", "4/1/2014", "4/1/2014"],
    "Salary": ["1000", "12000", "36000", "15000", "12000"],
}

df = pd.DataFrame(data, columns=["Name", "DOB", "Salary"])

# Convert the 'Salary' column to a list using .values
salary_list = df["Salary"].values.tolist()

print(salary_list)

Output:

['1000', '12000', '36000', '15000', '12000']

Dopo l’esecuzione di questo codice, la colonna Salary del DataFrame verrà convertita in una lista Python, che viene memorizzata nella variabile salary_list.

Utilizzare la List Comprehension per convertire una colonna del Dataframe in una lista

La List Comprehension è un modo conciso ed efficiente per creare liste in Python. Per convertire una colonna di un DataFrame di Pandas in una lista Python utilizzando la List Comprehension, è possibile seguire il codice seguente.

# Using list comprehension to convert the 'Salary' column to a list
salary_list = [salary for salary in df["Salary"]]

Ecco il codice completo:

import pandas as pd

data = {
    "Name": ["James", "Michelina", "Marc", "Bob", "Halena"],
    "DOB": ["1/1/2014", "2/1/2014", "3/1/2014", "4/1/2014", "4/1/2014"],
    "Salary": [1000, 12000, 36000, 15000, 12000],
}

df = pd.DataFrame(data, columns=["Name", "DOB", "Salary"])

# Using list comprehension to convert the 'Salary' column to a list
salary_list = [salary for salary in df["Salary"]]

print(salary_list)

Output:

[1000, 12000, 36000, 15000, 12000]

Conclusione

In questo articolo, abbiamo esplorato quattro diversi metodi per convertire una colonna di un DataFrame di Pandas in una lista Python: utilizzando il metodo tolist(), la funzione list(), la proprietà .values e la List Comprehension. Ogni metodo ha i suoi vantaggi e può essere scelto in base al tuo caso d’uso specifico e al tuo stile di programmazione.

Che tu preferisca la semplicità del metodo tolist(), l’approccio standard Pythonico della funzione list(), l’efficienza della proprietà .values o la leggibilità della List Comprehension, Pandas offre molteplici opzioni per aiutarti a convertire in modo trasparente le colonne del DataFrame in liste Python.

Articolo correlato - Pandas DataFrame Column

Articolo correlato - Pandas DataFrame