Pandas fuskblad för datavetenskap i Python
⚡ Smart sammanfattning
Pandas fusklappar sammanfattar bibliotekets mest använda kommandon på en sida. Denna referens grupperar dem efter uppgift: installera, bygga serier och dataframes, importera filer, välja rader, rensa data, tillämpa funktioner och exportera resultat.
Vad är ett fusklappsark för Pandas?
Pandas-biblioteket levererar hundratals funktioner, men bara en liten delmängd förekommer i det dagliga arbetet. Pandor fusklapp är en referens på en sida som listar dessa kommandon, grupperade efter den uppgift de utför.
Den täcker serie- och dataframe-strukturer, import och export av filer, val och ordning av data, rensning av värden och tillämpning av funktioner. Varje avsnitt nedan kombinerar en kort förklaring med körbar kod, så sidan fungerar också som en uppdatering för dina färdigheter i dataanalys.
👉 Ladda ner PDF-filen av Cheat Sheet här
Så här installerar och importerar du Pandas
Två kommandon konfigurerar Pandas, och båda körs i en terminal eller en Jupyter Notebook cell.
Steg 1) Installera Pandas
Kör detta en gång per miljö; använd ett utropstecken som prefix i en anteckningsbokcell.
pip install pandas
Steg 2) Importera pandor
Importera paketet under alias pd, vilket varje exempel här förutsätter.
import pandas as pd
Du kan nu anropa Pandas funktioner för att manipulera, analysera och rensa data. Avsnitten nedan listar dem i den ordning du normalt använder dem.
Pandas datastrukturer
Pandas har två datastrukturer, Serier och DataFrameBåda är märkta arrayer och båda kan innehålla vilken datatyp som helst. Den enda skillnaden är dimensionaliteten: en serie är en endimensionell array och en dataframe är en tvådimensionell array byggd av numpy arrayer under.
| Leverans | Serier | DataFrame |
|---|---|---|
| Mått | En-dimensionell | Tvådimensionell |
| Rymmer | En enda märkt kolumn | Många kolumner, blandade datatyper |
| Konstruktör | pd.Series() | pd.DataFrame() |
1. Serie
Det är en endimensionell, märkt array. Den kan innehålla vilken datatyp som helst, och None blir ett saknat värde.
s = pd.Series([2, -4, 6, 3, None], index=['A', 'B', 'C', 'D', 'E'])
2. DataFrame
Det är en tvådimensionell märkt array. Den kan innehålla alla datatyper och kolumner av olika storlekar.
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()
Det utskrivbara fusklappsarket nedan samlar samma kommandon på en sida.
Importerar data
Pandor kan läsa många filtyper direkt in i en DataFrame. Varje läsare nedan returnerar en, och read_csv () är den mest använda.
# 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)
Urval
Du kan välja element efter deras plats eller efter deras indexetikett. Samma hakparentessyntax väljer rader, kolumner och segment från båda strukturerna.
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. DataFrame
# 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]
Välj med boolesk indexering och inställning
Använda iloc och iat för heltalspositioner, och loc och at för etiketter.
1. Efter position
df.iloc[0, 1] df.iat[0, 1]
2. Efter etikett
df.loc[[0], ['Name']]
3. Efter etikett/position
df.loc[2] # Both are same
df.iloc[2]
4. Boolesk indexering
En boolesk mask behåller endast rader där villkoret är Sant. Det andra exemplet lägger till operatorn NOT ~, så returnerar den även värden som inte är över 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()
Rengöring av data
För Python För att rensa fusket kan du utföra följande operationer:
- Byt namn på kolumner med hjälp av
rename()metod. - Uppdatera värden med hjälp av
at[]oriat[]metod för att komma åt och modifiera specifika element. - Skapa en kopia av en serie eller dataframe med hjälp av
copy()metod. - Kontrollera NULL-värden med hjälp av
isnull()metoden och släpp dem med hjälp avdropna()metod. - Kontrollera om det finns dubbletter med hjälp av
duplicated()metoden. Släpp dem med hjälp avdrop_duplicates()metod. - Ersätt NULL-värden med hjälp av
fillna()metod med ett angivet värde. - Ersätt värden med hjälp av
replace()metod. - Sortera värden med hjälp av
sort_values()metod. - Rangordna värden med hjälp av
rank()metod.
# 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()
Observera att s1 = s skapar bara ett andra namn för samma objekt, aldrig en kopia — det är därför copy() följer det.
Hämtar information
Du kan utföra dessa åtgärder för att hämta information:
- Använd
shapeattribut för att hämta antalet rader och kolumner. - Använd
head()ortail()metod för att hämta de första eller sista raderna som ett exempel. - Använd
info(),describe()ordtypesmetod för att erhålla information om datatyp, antal, medelvärde, standardavvikelse, minimi- och maximivärden. - Använd
count(),min(),max(),sum(),mean()ochmedian()metoder för att erhålla specifik statistisk information för värden. - Använd
loc[]metod för att få en rad. - Använd
groupby()metod för att tillämpa funktionen GROUP BY för att gruppera liknande värden i en kolumn i en DataFrame.
1. Grundläggande information
# 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. Sammanfattning
# 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()
Tillämpa funktioner
apply() skickar en funktion över varje värde. Justeringsregler avgör sedan vad som händer när två objekt bara delar en del av sitt index.
# 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. Intern datajustering
# NA values for indices that don't overlap s2 = pd.Series([8, -1, 4], index=['A', 'C', 'D']) s + s2
2. Aritmetik Operamed fyllningsmetoder
# Fill values that don't overlap
s.add(s2, fill_value=0)
3. Filtrera, sortera och gruppera efter
Dessa funktioner kan användas för filtrering, sortering och grupperingping Serie- och DataFrame-objekt.
# 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)
Exportera data
Varje skribent nedan speglar en läsare från importsektionen, så en fil kan göras tur och retur utan extra verktyg.
# 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 från Cheat Sheet
Varje kommando här kan köras i den tillhörande anteckningsboken: Pandas fuskblad – Python för Data Science.ipynb.

