Pandas Cheat Sheet za podatkovnu znanost u Python

⚡ Pametni sažetak

Pandini vodiči sažimaju najčešće korištene naredbe biblioteke na jednu stranicu. Ovaj vodič ih grupira po zadacima: instaliranje, izgradnja serija i okvira podataka, uvoz datoteka, odabir redaka, čišćenje podataka, primjena funkcija i izvoz rezultata.

  • 🔘 Dvije strukture: Serija sadrži jednu označenu dimenziju, dok DataFrame sadrži dvije s miješanim tipovima stupaca.
  • ☑️ Uvoz bilo čega: read_csv, read_excel, read_sql, read_json i read_html učitavaju datoteke u DataFrame.
  • ✅ Precizan odabir: loc odabire po oznaci, iloc po poziciji, a boolean masks filtrira retke po uvjetu.
  • 🧪 Pouzdano čisti: isnull, dropna, fillna, drop_duplicates i replace obrađuju praznine i ponovljene zapise.
  • 🛠️ Brzo pregledajte: oblik, informacije, tipovi podataka i opis, sažetak strukture i statistike prije početka analize.
  • ⚠️ Napomena o verziji: pandas 3.0 omogućuje kopiranje pri pisanju prema zadanim postavkama, pa ulančano dodjeljivanje izaziva grešku.

Pandas Cheat Sheet za podatkovnu znanost u Python

Što je Pandas cheat sheet?

Pandas biblioteka nudi stotine funkcija, no samo se mali podskup pojavljuje u svakodnevnom radu. Pande šalabahter je referentni popis od jedne stranice koji navodi te naredbe, grupirane prema zadatku koji izvršavaju.

Obuhvaća strukture Series i DataFrame, uvoz i izvoz datoteka, odabir i sortiranje podataka, čišćenje vrijednosti i primjenu funkcija. Svaki odjeljak u nastavku spaja kratko objašnjenje s kodom koji se može izvesti, tako da stranica služi i kao podsjetnik za vaše... vještine analize podataka.

👉 Preuzmite PDF Cheat Sheet ovdje

Kako instalirati i uvesti Pande

Dvije naredbe postavljaju Pande i obje se izvršavaju u terminalu ili Jupyter Bilježnica stanica.

Korak 1) Instalirajte Pande

Pokrenite ovo jednom po okruženju; u ćeliji bilježnice stavite uskličnik.

pip install pandas

Korak 2) Uvoz Panda

Uvezite paket pod pseudonimom pd, što svaki primjer ovdje pretpostavlja.

import pandas as pd

Sada možete pozivati ​​Pandas funkcije za manipuliranje, analizu i čišćenje podataka. Odjeljci u nastavku navode ih redoslijedom kojim ih obično koristite.

Pandas strukture podataka

Pandas ima dvije strukture podataka, Serija i DataFrameOba su označena polja i oba mogu sadržavati bilo koju vrstu podataka. Jedina razlika je dimenzionalnost: Series je jednodimenzionalno polje, a DataFrame je dvodimenzionalno polje izgrađeno od numpy nizovi ispod.

svojstvo Serija DataFrame
Dimenzije Jednodimenzionalno Dvodimenzionalan
Drži Jedan označeni stupac Mnogo stupaca, miješani tipovi podataka
Konstruktor pd.Serija() pd.DataFrame()

1. Serija

To je jednodimenzionalni označeni niz. Može sadržavati bilo koji tip podataka i None postaje nedostajuća vrijednost.

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

2. DataFrame

To je dvodimenzionalni označeni niz. Može sadržavati bilo koju vrstu podataka i različite veličine stupaca.

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

Ispisivi cheat sheet u nastavku prikuplja iste naredbe na jednoj stranici.

Popis naredbi Series i DataFrame za ispis s popisom Pandas cheat sheeta

Uvoz podataka

Pande mogu čitati mnoge vrste datoteka izravno u DataFrame. Svaki čitač ispod vraća jedan, i read_csv() je najkorišteniji.

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

Izbor

Elemente možete odabrati prema njihovoj lokaciji ili prema njihovoj oznaci indeksa. Ista sintaksa uglate zagrade odabire retke, stupce i slojeve iz obje strukture.

1. Serija

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

Odabir Booleovim indeksiranjem i postavkom

Koristiti iloc i iat za cjelobrojne pozicije i loc i at za etikete.

1. Po poziciji

df.iloc[0, 1]

df.iat[0, 1]

2. Po etiketi

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

3. Po oznaci/poziciji

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

4. Booleovo indeksiranje

Booleova maska ​​zadržava samo retke gdje je uvjet True. Drugi primjer dodaje operator NOT ~, pa vraća i vrijednosti koje nisu veće od 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()

Čišćenje podataka

Za Python u svrhu varalice za čišćenje podataka, možete izvesti sljedeće operacije:

  • Preimenujte stupce pomoću rename() metoda.
  • Ažurirajte vrijednosti pomoću at[] or iat[] metoda za pristup i izmjenu određenih elemenata.
  • Izradite kopiju serije ili okvira podataka pomoću copy() metoda.
  • Provjerite NULL vrijednosti pomoću isnull() metodu i ispustite ih pomoću dropna() metoda.
  • Provjerite duplicirane vrijednosti pomoću duplicated() metodu. Ispustite ih pomoću drop_duplicates() metoda.
  • Zamijenite NULL vrijednosti pomoću fillna() metoda s određenom vrijednošću.
  • Zamijenite vrijednosti pomoću replace() metoda.
  • Sortiraj vrijednosti pomoću sort_values() metoda.
  • Rangirajte vrijednosti koristeći rank() metoda.
# 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()

Imajte na umu da s1 = s stvara samo drugo ime za isti objekt, nikada kopiju - zato copy() slijedi ga.

Dohvaćanje informacija

Za dohvaćanje informacija možete izvršiti sljedeće operacije:

  • Koristite shape atribut za dobivanje broja redaka i stupaca.
  • Koristite head() or tail() metoda za dobivanje prvih ili posljednjih nekoliko redaka kao uzorka.
  • Koristite info(), describe() or dtypes metoda za dobivanje informacija o tipu podataka, broju, srednjoj vrijednosti, standardnoj devijaciji, minimalnim i maksimalnim vrijednostima.
  • Koristite count(), min(), max(), sum(), mean() i median() metode za dobivanje specifičnih statističkih informacija za vrijednosti.
  • Koristite loc[] metoda za dobivanje retka.
  • Koristite groupby() metoda za primjenu funkcije GROUP BY za grupiranje sličnih vrijednosti u stupcu DataFramea.

1. Osnovne informacije

# 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. Sažetak

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

Primjena funkcija

apply() gura funkciju preko svake vrijednosti. Pravila poravnanja zatim odlučuju što se događa kada dva objekta dijele samo dio svog indeksa.

# 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. Interno usklađivanje podataka

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

2. Aritmetika Operacije s metodama popunjavanja

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

3. Filtriraj, sortiraj i grupiraj prema

Ove funkcije mogu se koristiti za filtriranje, sortiranje i grupiranjeping Objekti serije i DataFramea.

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

Izvoz podataka

Svaki program za pisanje u nastavku zrcali čitač iz odjeljka za uvoz, tako da datoteka može obaviti kružno putovanje bez dodatnih alata.

# 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 of Cheat Sheet

Svaka naredba ovdje se može pokrenuti u pratećoj bilježnici: Pandas Cheat Sheet – Python za znanost o podacima.ipynb.

Pitanja i odgovori

Kopiranje pri pisanju je uvijek omogućeno, nizovi znakova koriste namjenski str dtype, a ulančano dodjeljivanje na filtriranoj kopiji izaziva ChainedAssignmentError. Umjesto toga, dodijelite putem .loc. Svaka naredba ovdje se i dalje izvršava na pande 3.0.

pd.merge() spaja dijeljene ključeve na način SQL join to radi, df.join() poravnava na indeksu, a pd.concat() slaže okvire. Koristite merge za ključeve, concat za dodavanje.

df.pivot_table() pretvara duge retke u široku agregiranu mrežu, pd.melt() to obrće, a stack() ili unstack() pomiče razinu između indeksa i stupaca.

pd.to_datetime() pretvara tekst u datetime64, .dt pristupnik otkriva godinu, mjesec i dan u tjednu, a resample() agregira po danu, tjednu ili mjesecu kada je taj stupac indeks.

Vektorizirane operacije se izvode u kompiliranom C-u nad cijelim nizom, dok apply() poziva Python funkcija jednom po retku. Zamijeniping Primjena() po redovima za vektorizirani izraz često je deset puta brža.

AI asistenti mapiraju jednostavan opis rezultata na konkretne pozive, predlažući groupby, merge ili pivot_table s argumentima koji su svakom od njih potrebni. Prvo provjerite prijedlog na malom uzorku.

Da. GitHub kopilot pretvara komentare poput grupiranja po tečaju i brojanja u funkcionalni Pandas kod unutra JupyterTretirajte izlaz kao nacrt i provjerite broj redaka.

Proslijedi dtype u read_csv(), pretvorite ponovljene tekstualne stupce u kategoriju, snizite brojeve pomoću pd.to_numeric i učitavajte ih u dijelovima pomoću chunksize. df.info() izvještava o stvarnom otisku.

Sažmite ovu objavu uz: