Pandas Cheat Sheet for Data Science i Python

⚡ Smart opsummering

Pandas snydeark kondenserer bibliotekets mest brugte kommandoer på én side. Denne reference grupperer dem efter opgave: installation, opbygning af serier og datarammer, import af filer, valg af rækker, rensning af data, anvendelse af funktioner og eksport af resultater.

  • 🔘 To strukturer: Serier indeholder én mærket dimension, mens DataFrame indeholder to med blandede kolonnetyper.
  • ☑️ Importér hvad som helst: read_csv, read_excel, read_sql, read_json og read_html indlæser filer i en DataFrame.
  • ✅ Præcis udvælgelse: loc vælger efter etiket, iloc efter position, og booleske masker filtrerer rækker efter betingelse.
  • 🧪 Rengør pålideligt: isnull, dropna, fillna, drop_duplicates og erstat handle-huller og gentagne poster.
  • 🛠️ Inspicer hurtigt: form, info, dtyper og beskriv, opsummer struktur og statistik, før analysen begynder.
  • ⚠️ Versionsnotat: pandas 3.0 aktiverer Copy-on-Write som standard, så kædet tildeling giver en fejl.

Pandas Cheat Sheet for Data Science i Python

Hvad er et pandas-snydeark?

Pandas-biblioteket leverer hundredvis af funktioner, men kun en lille delmængde optræder i det daglige arbejde. Pandaer snydeark er en reference på én side, der viser disse kommandoer, grupperet efter den opgave, de udfører.

Den dækker serie- og datarammestrukturer, import og eksport af filer, valg og sortering af data, rensning af værdier og anvendelse af funktioner. Hvert afsnit nedenfor kombinerer en kort forklaring med kørbar kode, så siden også fungerer som en genopfriskning til dine færdigheder i dataanalyse.

👉 Download PDF'en af ​​Cheat Sheet her

Sådan installeres og importeres Pandas

To kommandoer konfigurerer Pandas, og begge kører i en terminal eller en Jupyter Notesbog celle.

Trin 1) Installer Pandas

Kør dette én gang pr. miljø; sæt et udråbstegn foran i en celle i en notesbog.

pip install pandas

Trin 2) Importér pandaer

Importer pakken under aliasset pd, hvilket hvert eksempel her antager.

import pandas as pd

Du kan nu kalde Pandas-funktioner for at manipulere, analysere og rense data. Afsnittene nedenfor viser dem i den rækkefølge, du normalt bruger til at bruge dem.

Pandas datastrukturer

Pandas har to datastrukturer, Series og DataFrameBegge er mærkede arrays, og begge kan indeholde enhver datatype. Den eneste forskel er dimensionalitet: en serie er et endimensionelt array, og en dataframe er et todimensionelt array bygget af nusset arrays nedenunder.

Feature Series DataFrame
Mål Endimensionel To-dimensionelle
Besidder En enkelt mærket kolonne Mange kolonner, blandede datatyper
Constructor pd.Series() pd.DataFrame()

1. Serie

Det er et endimensionelt mærket array. Det kan indeholde enhver datatype, og None bliver en manglende værdi.

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

2. DataFrame

Det er et todimensionelt mærket array. Det kan indeholde alle datatyper og kolonner i forskellige størrelser.

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 udskrivbare snydeark nedenfor samler de samme kommandoer på én side.

Printbar Pandas snydeark med en liste over serie- og dataframe-kommandoer

Importerer data

Pandaer kan læse mange filtyper direkte ind i en DataFrame. Hver læser nedenfor returnerer én, og read_csv() er den mest brugte.

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

Udvælgelse

Du kan vælge elementer efter deres placering eller efter deres indeksetiket. Den samme syntaks for firkantede parenteser vælger rækker, kolonner og udsnit fra begge strukturer.

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]

Valg ved boolsk indeksering og indstilling

Brug iloc og iat for heltalspositioner, og loc og at til etiketter.

1. Efter stilling

df.iloc[0, 1]

df.iat[0, 1]

2. Efter Label

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

3. Efter etiket/position

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

4. Boolean indeksering

En boolsk maske gemmer kun rækker, hvor betingelsen er sand. Det andet eksempel tilføjer NOT-operatoren. ~, så den returnerer også værdier, der ikke er over 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()

Data Rengøring

Til Python data-rensning snydeark formål, kan du udføre følgende handlinger:

  • Omdøb kolonner ved hjælp af rename() fremgangsmåde.
  • Opdater værdier ved hjælp af at[] or iat[] metode til at tilgå og ændre specifikke elementer.
  • Opret en kopi af en serie eller dataramme ved hjælp af copy() fremgangsmåde.
  • Tjek for NULL-værdier ved hjælp af isnull() metoden, og slip dem ved hjælp af dropna() fremgangsmåde.
  • Tjek for dubletter ved hjælp af duplicated() metode. Slip dem ved hjælp af drop_duplicates() fremgangsmåde.
  • Erstat NULL-værdier ved hjælp af fillna() metode med en bestemt værdi.
  • Erstat værdier ved hjælp af replace() fremgangsmåde.
  • Sortér værdier ved hjælp af sort_values() fremgangsmåde.
  • Rangordværdier ved hjælp af rank() fremgangsmåde.
# 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()

Bemærk, at s1 = s skaber kun et andet navn til det samme objekt, aldrig en kopi — derfor copy() følger det.

Henter information

Du kan udføre disse handlinger for at hente oplysninger:

  • Brug shape attribut for at få antallet af rækker og kolonner.
  • Brug head() or tail() metode til at hente de første eller sidste par rækker som en stikprøve.
  • Brug info(), describe() or dtypes Metode til at indhente information om datatype, antal, middelværdi, standardafvigelse, minimums- og maksimumsværdier.
  • Brug count(), min(), max(), sum(), mean() og median() metoder til at indhente specifikke statistiske oplysninger for værdier.
  • Brug loc[] metode til at få en række.
  • Brug groupby() metode til at anvende GROUP BY-funktionen til at gruppere lignende værdier i en kolonne i en DataFrame.

1. Grundlæggende oplysninger

# 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. Resumé

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

Anvendelse af funktioner

apply() skubber en funktion hen over hver værdi. Justeringsregler bestemmer derefter, hvad der sker, når to objekter kun deler en del af deres indeks.

# 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 Operationer med Fyldmetoder

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

3. Filtrer, sorter og grupper efter

Disse funktioner kan bruges til filtrering, sortering og grupperingping Serie- og DataFrame-objekter.

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

Dataeksport

Hver forfatter nedenfor spejler en læser fra importsektionen, så en fil kan foretage en rundtur uden ekstra værktøj.

# 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 af snydeark

Alle kommandoer her kan køres i den tilhørende notesbog: Pandas snydeark – Python for Data Science.ipynb.

Ofte Stillede Spørgsmål

Copy-on-Write er altid aktiveret, strenge bruger en dedikeret str dtype, og kædet tildeling på en filtreret kopi giver ChainedAssignmentError. Tildel via .loc i stedet. Alle kommandoer her kører stadig på pandaer 3.0.

pd.merge() join-er på delte nøgler på samme måde som en SQL `join` gør det, `df.join()` justeres på indekset, og `pd.concat()` stabler `frames`. Brug `merge` til nøgler og `concat` til `appending`.

df.pivot_table() laver lange rækker om til et bredt aggregeret gitter, pd.melt() vender dette om, og stack() eller unstack() flytter et niveau mellem indeks og kolonner.

pd.to_datetime() konverterer tekst til datetime64, .dt-tilgangen eksponerer år, måned og ugedag, og resample() aggregerer efter dag, uge ​​eller måned, når den kolonne er indekset.

Vektoriserede operationer kører i kompileret C på tværs af hele arrayet, mens apply() kalder et Python funktion én gang pr. række. Swapping En rækkevis apply() for et vektoriseret udtryk er ofte ti gange hurtigere.

AI-assistenter knytter en enkel beskrivelse af resultatet til konkrete kald og foreslår groupby, merge eller pivot_table med de argumenter, der er nødvendige for hver af dem. Bekræft først forslaget på en lille stikprøve.

Ja. GitHub Copilot omdanner en kommentar som f.eks. grupper efter kursus og antal til fungerende Pandas-kode indeni JupyterBehandl outputtet som en kladde, og tjek antallet af rækker.

Send dtype til read_csv(), konverter gentagne tekstkolonner til kategori, nedgrader tal med pd.to_numeric, og indlæs i stykker ved hjælp af chunksize. df.info() rapporterer det reelle fodaftryk.

Opsummer dette indlæg med: