Panda's Cheatsheet voor datawetenschap in Python

⚡ Slimme samenvatting

Pandas-spiekbriefjes bundelen de meest gebruikte commando's van de bibliotheek op één pagina. Deze handleiding groepeert ze per taak: installeren, Series en DataFrames bouwen, bestanden importeren, rijen selecteren, gegevens opschonen, functies toepassen en resultaten exporteren.

  • 🔘 Twee structuren: Een Series heeft één gelabelde dimensie, terwijl een DataFrame er twee heeft met gemengde kolomtypen.
  • ☑️ Importeer alles: De functies read_csv, read_excel, read_sql, read_json en read_html laden bestanden in een DataFrame.
  • Nauwkeurige selectie: `loc` selecteert op label, `iloc` op positie en `boolean masks` filtert rijen op basis van een voorwaarde.
  • 🧪 Betrouwbaar schoonmaken: isnull, dropna, fillna, drop_duplicates en replace behandelen hiaten en herhaalde records.
  • Snel inspecteren: Vorm, informatie, gegevenstypen en beschrijving geven een samenvatting van de structuur en statistieken voordat de analyse begint.
  • ⚠️ Versie-opmerking: Pandas 3.0 schakelt Copy-on-Write standaard in, waardoor gekoppelde toewijzing een foutmelding geeft.

Panda's Cheatsheet voor datawetenschap in Python

Wat is een Pandas-spiekbriefje?

De Pandas-bibliotheek bevat honderden functies, maar slechts een klein deel daarvan wordt in de dagelijkse praktijk gebruikt. Pandas spiekbriefje Dit is een naslagwerk van één pagina met een lijst van die commando's, gegroepeerd per taak die ze uitvoeren.

Het behandelt de Series- en DataFrame-structuren, het importeren en exporteren van bestanden, het selecteren en sorteren van gegevens, het opschonen van waarden en het toepassen van functies. Elk onderdeel hieronder combineert een korte uitleg met uitvoerbare code, zodat de pagina ook als opfrisser voor uw kennis kan dienen. vaardigheden op het gebied van data-analyse.

👉 Download hier de pdf van Cheat Sheet

Hoe installeer en importeer je Pandas?

Twee commando's worden gebruikt om Pandas te configureren, en beide worden uitgevoerd in een terminal of een Jupyter Notitieboek cel.

Stap 1) Installeer Pandas

Voer dit eenmaal per omgeving uit; plaats er een uitroepteken voor in een notitieblokcel.

pip install pandas

Stap 2) Pandas importeren

Importeer het pakket onder de alias pd, wat in elk voorbeeld hier wordt verondersteld.

import pandas as pd

Je kunt nu Pandas-functies aanroepen om gegevens te manipuleren, analyseren en opschonen. De onderstaande secties geven een overzicht van deze functies in de volgorde waarin je ze normaal gesproken gebruikt.

Gegevensstructuren van Panda's

Pandas heeft twee datastructuren, -Series en dataframeBeide zijn gelabelde arrays en beide kunnen elk gegevenstype bevatten. Het enige verschil is de dimensionaliteit: een Series is een eendimensionale array en een DataFrame is een tweedimensionale array die is opgebouwd uit ... NumPy arrays eronder.

Kenmerk -Series dataframe
Afmetingen Eendimensionaal Tweedimensionaal
houdt Een enkele gelabelde kolom Veel kolommen, gemengde gegevenstypen
Constructeur pd.Series() pd.DataFrame()

1. Serie

Het is een eendimensionale gelabelde array. Het kan elk gegevenstype bevatten, en None wordt een ontbrekende waarde.

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

2. DataFrame

Het is een tweedimensionale gelabelde array. Het kan elk gegevenstype en kolommen van verschillende groottes bevatten.

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()

Het onderstaande afdrukbare spiekbriefje verzamelt dezelfde commando's op één pagina.

Printbaar spiekbriefje voor Pandas met een overzicht van Series- en DataFrame-opdrachten.

Gegevens importeren

Pandas kan veel bestandstypen rechtstreeks in een DataFrame lezen. Elke onderstaande reader retourneert er één, en read_csv () wordt het meest gebruikt.

# 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)

Selectie

Je kunt elementen selecteren op basis van hun locatie of op basis van hun indexlabel. Dezelfde syntax met vierkante haken selecteert rijen, kolommen en segmenten uit beide structuren.

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]

Selecteren via Booleaanse indexering en instelling

Gebruik iloc en iat voor gehele posities, en loc en at voor etiketten.

1. Op positie

df.iloc[0, 1]

df.iat[0, 1]

2. Op etiket

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

3. Op label/positie

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

4. Booleaanse indexering

Een booleaanse mask behoudt alleen rijen waar de voorwaarde waar is. Het tweede voorbeeld voegt de NOT-operator toe. ~Het retourneert dus ook waarden die niet groter zijn dan 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()

Gegevens opschonen

Bij Python Voor doeleinden van data-cleaning cheat sheet kunt u de volgende bewerkingen uitvoeren:

  • Kolommen hernoemen met behulp van de rename() methode.
  • Waarden bijwerken met behulp van de at[] or iat[] methode om specifieke elementen te benaderen en te wijzigen.
  • Maak een kopie van een Series of DataFrame met behulp van de copy() methode.
  • Controleer op NULL-waarden met behulp van de isnull() methode, en ze verwijderen met behulp van de dropna() methode.
  • Controleer op dubbele waarden met behulp van de duplicated() methode. Laat ze vallen met behulp van de drop_duplicates() methode.
  • Vervang NULL-waarden met behulp van de fillna() methode met een opgegeven waarde.
  • Vervang waarden met behulp van de replace() methode.
  • Sorteer waarden met behulp van de sort_values() methode.
  • Rangschik waarden met behulp van de rank() methode.
# 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()

Merk op dat s1 = s creëert alleen een tweede naam voor hetzelfde object, nooit een kopie — daarom copy() volgt het.

Informatie ophalen

U kunt de volgende bewerkingen uitvoeren om informatie op te halen:

  • Gebruik de shape attribuut om het aantal rijen en kolommen te verkrijgen.
  • Gebruik de head() or tail() methode om de eerste of laatste paar rijen als steekproef te verkrijgen.
  • Gebruik de info(), describe() or dtypes Methode om informatie te verkrijgen over het gegevenstype, het aantal, het gemiddelde, de standaardafwijking, de minimum- en maximumwaarden.
  • Gebruik de count(), min(), max(), sum(), mean() en median() methoden om specifieke statistische informatie voor waarden te verkrijgen.
  • Gebruik de loc[] methode om een ​​rij te verkrijgen.
  • Gebruik de groupby() Methode om de GROUP BY-functie toe te passen om vergelijkbare waarden in een kolom van een DataFrame te groeperen.

1. Basis informatie

# 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. Overzicht

# 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()

Functies toepassen

apply() Een functie wordt toegepast op elke waarde. Uitlijningsregels bepalen vervolgens wat er gebeurt wanneer twee objecten slechts een deel van hun index delen.

# 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. Interne gegevensuitlijning

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

2. Rekenkunde Operamet vulmethoden

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

3. Filteren, sorteren en groeperen op

Deze functies kunnen worden gebruikt voor filteren, sorteren en groeperen.ping Series- en DataFrame-objecten.

# 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)

Gegevens exporteren

Elke schrijver hieronder is een spiegelbeeld van een lezer uit het importgedeelte, zodat een bestand de heen- en terugreis kan maken zonder extra hulpmiddelen.

# 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 van Cheatsheet

Alle hier vermelde commando's kunnen worden uitgevoerd in het bijbehorende notitieboek: Panda's spiekbriefje – Python voor Data Science.ipynb.

Veelgestelde vragen

Copy-on-Write is altijd ingeschakeld, strings gebruiken een speciaal str-datatype en gekoppelde toewijzing op een gefilterde kopie geeft een ChainedAssignmentError. Wijs in plaats daarvan toe via .loc. Elk commando hier wordt nog steeds uitgevoerd op pandas 3.0.

pd.merge() voegt samen op gedeelde sleutels op dezelfde manier als een SQL `join` doet dat, `df.join()` lijnt uit op de index en `pd.concat()` stapelt frames. Gebruik `merge` voor sleutels en `concat` voor het toevoegen.

df.pivot_table() zet lange rijen om in een breed geaggregeerd raster, pd.melt() keert dat om, en stack() of unstack() verplaatsen een niveau tussen index en kolommen.

pd.to_datetime() converteert tekst naar datetime64, de .dt-accessor geeft het jaar, de maand en de weekdag weer, en resample() aggregeert per dag, week of maand zodra die kolom de index is.

Gevectoriseerde bewerkingen worden in gecompileerde C uitgevoerd over de hele array, terwijl apply() een aanroep doet naar een Python functie eenmaal per rij. Wisselenping Een rijgewijze apply() voor een gevectoriseerde expressie is vaak tien keer sneller.

AI-assistenten vertalen een eenvoudige beschrijving van het resultaat naar concrete functies en suggereren functies zoals groupby, merge of pivot_table, met de bijbehorende argumenten. Controleer de suggestie eerst op een kleine steekproef.

Ja. GitHub-copiloot Zet een opmerking zoals 'groeperen op cursus en aantal' om in werkende Pandas-code. JupyterBeschouw de uitvoer als een concept en controleer het aantal rijen.

Geef dtype door aan read_csv ()Converteer herhaalde tekstkolommen naar categorieën, converteer getallen naar een lagere waarde met pd.to_numeric en laad in stukken met behulp van chunksize. df.info() rapporteert de werkelijke footprint.

Vat dit bericht samen met: