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: