Cheat Sheet di Panda per la scienza dei dati in Python

⚡ Riepilogo intelligente

Le guide rapide di Pandas condensano i comandi più utilizzati della libreria in un'unica pagina. Questo riferimento li raggruppa per attività: installazione, creazione di Series e DataFrame, importazione di file, selezione di righe, pulizia dei dati, applicazione di funzioni ed esportazione dei risultati.

  • 🔘 Due sezioni: Una serie contiene una dimensione etichettata, mentre un DataFrame ne contiene due con tipi di colonna misti.
  • ☑️ Importa qualsiasi cosa: Le funzioni read_csv, read_excel, read_sql, read_json e read_html caricano i file in un DataFrame.
  • Selezione precisa: loc seleziona in base all'etichetta, iloc in base alla posizione e le maschere booleane filtrano le righe in base alla condizione.
  • 🧪 Pulizia affidabile: isnull, dropna, fillna, drop_duplicates e replace gestiscono le lacune e i record ripetuti.
  • Ispeziona velocemente: forma, informazioni, tipi di dati e descrizione riassumono la struttura e le statistiche prima dell'inizio dell'analisi.
  • ⚠️ Nota sulla versione: Pandas 3.0 abilita la copia su scrittura per impostazione predefinita, quindi l'assegnazione concatenata genera un errore.

Cheat Sheet di Panda per la scienza dei dati in Python

Che cos'è un foglio riassuntivo di Pandas?

La libreria Pandas include centinaia di funzioni, ma solo un piccolo sottoinsieme viene utilizzato nel lavoro quotidiano. Foglio riassuntivo di Pandas Si tratta di un documento di riferimento di una pagina che elenca questi comandi, raggruppati in base alla funzione che svolgono.

Copre le strutture Series e DataFrame, l'importazione e l'esportazione di file, la selezione e l'ordinamento dei dati, la pulizia dei valori e l'applicazione di funzioni. Ogni sezione seguente abbina una breve spiegazione a un codice eseguibile, quindi la pagina funziona anche come ripasso per il tuo capacità di analisi dei dati.

👉 Scarica qui il PDF del Cheat Sheet

Come installare e importare Pandas

Due comandi configurano Pandas ed entrambi vengono eseguiti in un terminale o in un Jupyter Taccuino cella.

Passaggio 1) Installare Pandas

Eseguite questo comando una sola volta per ambiente; anteponete un punto esclamativo in una cella del notebook.

pip install pandas

Passaggio 2) Importa Pandas

Importa il pacchetto con l'alias pd, presupposto che tutti gli esempi qui presentati siano impliciti.

import pandas as pd

Ora è possibile richiamare le funzioni di Pandas per manipolare, analizzare e pulire i dati. Le sezioni seguenti le elencano nell'ordine in cui vengono solitamente utilizzate.

Strutture dati di Panda

Pandas ha due strutture dati, Campionati and dataframeEntrambi sono array etichettati ed entrambi possono contenere qualsiasi tipo di dati. L'unica differenza è la dimensionalità: una Series è un array unidimensionale e un DataFrame è un array bidimensionale costruito da NumPy matrici sottostanti.

Caratteristica Campionati dataframe
Dimensioni Unidimensionale Bidimensionale
Contiene Una singola colonna etichettata Molte colonne, tipi di dati misti
Costruttore pd.Series() pd.DataFrame()

1. Serie

Si tratta di un array etichettato unidimensionale. Può contenere qualsiasi tipo di dati e None diventa un valore mancante.

s = pd.Series([2, -4, 6, 3, None], index=['A', 'B', 'C', 'D', 'E'])

2. Telaio dati

Si tratta di un array bidimensionale etichettato. Può contenere qualsiasi tipo di dato e colonne di diverse dimensioni.

data = {'RollNo' : [101, 102, 75, 99],
        'Name' : ['Mithlesh', 'Ram', 'Rudra', 'Mithlesh'],
        'Course' : ['Nodejs', None, 'Nodejs', 'JavaScript']
}
df = pd.DataFrame(data, columns=['RollNo', 'Name', 'Course'])
df.head()

Il foglio riassuntivo stampabile qui sotto raccoglie gli stessi comandi su un'unica pagina.

Foglio riassuntivo stampabile di Pandas con i comandi per Series e DataFrame.

Importazione di dati

Pandas può leggere molti tipi di file direttamente in un DataFrame. Ogni lettore qui sotto ne restituisce uno, e leggi_csv() è il più utilizzato.

# Import a CSV file pd
pd.read_csv(filename)

# Import a TSV file
pd.read_table(filename)

# Import a Excel file pd
pd.read_excel(filename)

# Import a SQL table/database
pd.read_sql(query, connection_object)

# Import a JSON file
pd.read_json(json_string)

# Import a HTML file
pd.read_html(url)

# From clipboard to read_table()
pd.read_clipboard()

# From dict
pd.DataFrame(dict)

Selezione

È possibile selezionare gli elementi in base alla loro posizione o al loro indice. La stessa sintassi tra parentesi quadre permette di selezionare righe, colonne e sezioni da entrambe le strutture.

1. Serie

# Accessing one element from Series
s['D']

# Accessing all elements between two given indices
s['A':'C']

# Accessing all elements from starting till given index
s[:'C']

# Accessing all elements from given index till end
s['B':]

2. Telaio dati

# Accessing one column df
df['Name']

# Accessing rows from after given row
df[1:]

# Accessing till before given row
df[:1]

# Accessing rows between two given rows
df[1:2]

Selezione tramite indicizzazione e impostazione booleana

Usa il iloc and iat per posizioni intere e loc and at per le etichette.

1. Per posizione

df.iloc[0, 1]

df.iat[0, 1]

2. Per etichetta

df.loc[[0],  ['Name']]

3. Per etichetta/posizione

df.loc[2] # Both are same
df.iloc[2]

4. Indicizzazione booleana

Una maschera booleana mantiene solo le righe in cui la condizione è vera. Il secondo esempio aggiunge l'operatore NOT. ~, quindi restituisce anche valori non superiori a 1.

# Series s where value is > 1
s[(s > 0)]

# Series s where value is <-2 or >1
s[(s < -2) | ~(s > 1)]

# Use filter to adjust DataFrame
df[df['RollNo']>100]

# Set index a of Series s to 6
s['D'] = 10
s.head()

Pulizia dei dati

Per Python Ai fini della pulizia dei dati, è possibile eseguire le seguenti operazioni:

  • Rinominare le colonne utilizzando rename() metodo.
  • Aggiorna i valori utilizzando il at[] or iat[] metodo per accedere e modificare elementi specifici.
  • Crea una copia di una Series o di un DataFrame utilizzando copy() metodo.
  • Verifica la presenza di valori NULL utilizzando isnull() metodo e rilasciarli usando il dropna() metodo.
  • Verifica la presenza di valori duplicati utilizzando il duplicated() metodo. Lasciali cadere usando il drop_duplicates() metodo.
  • Sostituire i valori NULL utilizzando fillna() metodo con un valore specificato.
  • Sostituire i valori utilizzando il replace() metodo.
  • Ordina i valori utilizzando il sort_values() metodo.
  • Classifica i valori utilizzando il rank() metodo.
# Renaming columns
df.columns = ['a','b','c']
df.head()

# Mass renaming of columns
df = df.rename(columns={'RollNo': 'ID', 'Name': 'Student_Name'})

# Or use this edit in same DataFrame instead of in copy
df.rename(columns={'RollNo': 'ID', 'Name': 'Student_Name'}, inplace=True)
df.head()

# Counting duplicates in a column
df.duplicated(subset='Name')

# Removing entire row that has duplicate in given column
df.drop_duplicates(subset=['Name'])

# You can choose which one keep - by default is first
df.drop_duplicates(subset=['Name'], keep='last')

# Checks for Null Values
s.isnull()

# Checks for non-Null Values - reverse of isnull()
s.notnull()

# Checks for Null Values df
df.isnull()

# Checks for non-Null Values - reverse of isnull()
df.notnull()

# Drops all rows that contain null values
df.dropna()

# Drops all columns that contain null values
df.dropna(axis=1)

# Replaces all null values with 'Guru99'
df.fillna('Guru99')

# Replaces all null values with the mean
s.fillna(s.mean())

# Converts the datatype of the Series to float
s.astype(float)

# Replaces all values equal to 6 with 'Six'
s.replace(6,'Six')

# Replaces all 2 with 'Two' and 6 with 'Six'
s.replace([2,6],['Two','Six'])

# Drop from rows (axis=0)
s.drop(['B',  'D'])

# Drop from columns(axis=1)
df.drop('Name', axis=1)

# Sort by labels with axis
df.sort_index()

# Sort by values with axis
df.sort_values(by='RollNo')

# Ranking entries
df.rank()

# s1 is pointing to same Series as s
s1 = s

# s_copy of s, but not pointing same Series
s_copy = s.copy()

# df1 is pointing to same DataFrame as df
df1 = s

# df_copy of df, but not pointing same DataFrame
df_copy = df.copy()

Si noti che s1 = s crea solo un secondo nome per lo stesso oggetto, mai una copia — ecco perché copy() lo segue.

Recupero delle informazioni

È possibile eseguire le seguenti operazioni per recuperare le informazioni:

  • Usa il shape attributo per ottenere il numero di righe e colonne.
  • Usa il head() or tail() metodo per ottenere le prime o le ultime righe come campione.
  • Usa il info(), describe() or dtypes Metodo per ottenere informazioni sul tipo di dati, conteggio, media, deviazione standard, valori minimi e massimi.
  • Usa il count(), min(), max(), sum(), mean() and median() metodi per ottenere informazioni statistiche specifiche sui valori.
  • Usa il loc[] metodo per ottenere una riga.
  • Usa il groupby() Metodo per applicare la funzione GROUP BY per raggruppare valori simili in una colonna di un DataFrame.

1. Informazioni di base

# Counting all elements in Series
len(s)

# Counting all elements in DataFrame
len(df)

# Prints number of rows and columns in dataframe
df.shape

# Prints first 10 rows by default, if no value set
df.head(10)

# Prints last 10 rows by default, if no value set
df.tail(10)

# For counting non-Null values column-wise
df.count()

# For range of index df
df.index

# For name of attributes/columns
df.columns

# Index, Data Type and Memory information
df.info()

# Datatypes of each column
df.dtypes

# Summary statistics for numerical columns
df.describe()

2. Riassunto

# For adding all values column-wise
df.sum()

# For min column-wise
df.min()

# For max column-wise
df.max()

# For mean value in number column
df.mean()

# For median value in number column
df.median()

# Count non-Null values
s.count()

# Count non-Null values
df.count()

# Return Series of given column
df['Name'].tolist()

# Name of columns
df.columns.tolist()

# Creating subset
df[['Name', 'Course']]

# Return number of values in each group
df.groupby('Name').count()

Applicazione di funzioni

apply() applica una funzione a ogni valore. Le regole di allineamento decidono quindi cosa accade quando due oggetti condividono solo una parte del loro indice.

# Define function
f = lambda x: x*5

# Apply this function on given Series - For each value
s.apply(f)

# Apply this function on given DataFrame - For each value
df.apply(f)

1. Allineamento dei dati interni

# NA values for indices that don't overlap
s2 = pd.Series([8, -1, 4],  index=['A',  'C',  'D'])
s + s2

2. Aritmetica Operazioni con metodi di riempimento

# Fill values that don't overlap
s.add(s2, fill_value=0)

3. Filtra, ordina e raggruppa per

Queste funzioni possono essere utilizzate per filtrare, ordinare e raggruppareping Oggetti Series e DataFrame.

# Filter rows where column is greater than 100
df[df['RollNo']>100]

# Filter rows where 70 < column < 101
df[(df['RollNo'] > 70) & (df['RollNo'] < 101)]

# Sorts values in ascending order
s.sort_values()

# Sorts values in descending order
s.sort_values(ascending=False)

# Sorts values by RollNo in ascending order
df.sort_values('RollNo')

# Sorts values by RollNo in descending order
df.sort_values('RollNo', ascending=False)

Esportazione dei dati

Ogni scrittore qui sotto rispecchia un lettore della sezione di importazione, in modo che un file possa completare il viaggio di andata e ritorno senza strumenti aggiuntivi.

# Export as a CSV file df
df.to_csv(filename)

# Export as a Excel file df
df.to_excel(filename)

# Export as a SQL table df
df.to_sql(table_name, connection_object)

# Export as a JSON file
df.to_json(filename)

# Export as a HTML table
df.to_html(filename)

# Write to the clipboard
df.to_clipboard()

Colab di Cheat Sheet

Ogni comando qui presente è eseguibile nel notebook di accompagnamento: Foglio informativo sui panda – Python per Data Science.ipynb.

DOMANDE FREQUENTI

La copia su scrittura è sempre abilitata, le stringhe utilizzano un tipo di dati str dedicato e l'assegnazione concatenata su una copia filtrata genera un errore ChainedAssignmentError. Assegnare tramite .loc invece. Ogni comando qui è ancora in esecuzione su panda 3.0.

pd.merge() unisce su chiavi condivise nel modo in cui un SQL `join` esegue l'allineamento, `df.join()` allinea in base all'indice e `pd.concat()` unisce i frame. Usa `merge` per le chiavi e `concat` per l'aggiunta.

df.pivot_table() trasforma le righe lunghe in una griglia aggregata più ampia, pd.melt() inverte questo processo, e stack() o unstack() spostano di un livello l'indice e le colonne.

La funzione pd.to_datetime() converte il testo in datetime64, la funzione di accesso .dt espone anno, mese e giorno della settimana, e la funzione resample() aggrega per giorno, settimana o mese una volta che la colonna corrispondente è l'indice.

Le operazioni vettorializzate vengono eseguite in C compilato sull'intero array, mentre apply() chiama un Python funzione una volta per riga. Scambiaping L'applicazione riga per riga del metodo apply() a un'espressione vettorializzata è spesso dieci volte più veloce.

Gli assistenti basati sull'IA associano una semplice descrizione del risultato a chiamate concrete, suggerendo operazioni come groupby, merge o pivot_table con gli argomenti necessari per ciascuna. Verifica prima il suggerimento su un piccolo campione.

Sì. Le serrature scorrevoli portatili e i catenacci a superficie possono essere usati per mettere in sicurezza una porta a scomparsa dall'esterno. Alcuni kit con catena di sicurezza consentono anche il bloccaggio esterno con chiave o manopola girevole. Copilota GitHub trasforma un commento come raggruppa per corso e conta in codice Pandas funzionante all'interno Jupyter. Tratta l'output come una bozza e verifica il numero di righe.

Passare dtype a leggi_csv(), converti le colonne di testo ripetute in categorie, converti i numeri con pd.to_numeric e carica a pezzi usando chunksize. df.info() riporta l'ingombro reale.

Riassumi questo post con: