Pandas-huijauslehti tietotieteelle sisään Python

⚡ Älykäs yhteenveto

Pandan lunttilaput tiivistävät kirjaston käytetyimmät komennot yhdelle sivulle. Tämä viite ryhmittelee ne tehtävien mukaan: asentaminen, sarjojen ja datakehysten kokoaminen, tiedostojen tuominen, rivien valitseminen, tietojen puhdistaminen, funktioiden soveltaminen ja tulosten vienti.

  • 🔘 Kaksi rakennetta: Sarja sisältää yhden nimetyn ulottuvuuden, kun taas DataFramessa on kaksi, joissa on sekalaisia ​​saraketyyppejä.
  • ☑️ Tuo mitä tahansa: read_csv, read_excel, read_sql, read_json ja read_html lataavat tiedostot DataFrameen.
  • Tarkka valinta: loc valitsee otsikon mukaan, iloc sijainnin mukaan ja totuusarvomaskit suodattavat rivejä ehdon mukaan.
  • 🧪 Puhdista luotettavasti: isnull, dropna, fillna, drop_duplicates ja korvaa kahvojen aukot ja toistuvat tietueet.
  • 🛠️ Tarkista nopeasti: muoto, tiedot, datatyypit ja kuvaus, tiivistä rakenne ja tilastot ennen analyysin aloittamista.
  • ⚠️ Versiohuomautus: pandas 3.0 ottaa kopioinnin kirjoitettaessa käyttöön oletuksena, joten ketjutettu kohdistus aiheuttaa virheen.

Pandas-huijauslehti tietotieteelle sisään Python

Mikä on Panda-lunttilappu?

Pandas-kirjasto sisältää satoja funktioita, mutta vain pieni osa niistä esiintyy jokapäiväisessä työssä. Pandojen lunttilappu on yhden sivun mittainen opas, jossa luetellaan komennot ryhmiteltyinä niiden suorittaman tehtävän mukaan.

Se kattaa Series- ja DataFrame-rakenteet, tiedostojen tuonnin ja viennin, datan valinnan ja järjestämisen, arvojen puhdistamisen ja funktioiden soveltamisen. Jokainen alla oleva osio yhdistää lyhyen selityksen suoritettavaan koodiin, joten sivu toimii myös kertauksena... data-analyysitaidot.

👉 Lataa Cheat Sheetin PDF tästä

Pandojen asentaminen ja tuominen

Kaksi komentoa käynnistää Pandasin, ja molemmat toimivat terminaalissa tai Jupyter muistikirja solu.

Vaihe 1) Asenna Pandas

Suorita tämä kerran ympäristöä kohden; lisää sen eteen huutomerkki muistikirjan solussa.

pip install pandas

Vaihe 2) Tuo pandat

Tuo paketti aliaksen alla pd, minkä jokainen esimerkki tässä olettaa.

import pandas as pd

Voit nyt kutsua Pandas-funktioita datan käsittelyyn, analysointiin ja puhdistamiseen. Alla olevat osiot luettelevat ne siinä järjestyksessä kuin yleensä käytät niitä.

Pandasin tietorakenteet

Pandoilla on kaksi tietorakennetta, Sarjat ja DatakehysMolemmat ovat nimettyjä taulukoita ja molemmat voivat sisältää mitä tahansa tietotyyppiä. Ainoa ero on ulottuvuus: Series on yksiulotteinen taulukko ja DataFrame on kaksiulotteinen taulukko, joka on rakennettu . nuhjuinen alla olevat taulukot.

Ominaisuus Sarjat Datakehys
Mitat Yksiulotteinen Kaksiulotteinen
Omistaa Yksi merkitty sarake Monta saraketta, sekalaisia ​​tietotyyppejä
Rakentaja pd.Sarja() pd.DataFrame()

1. Sarja

Se on yksiulotteinen nimetty taulukko. Se voi sisältää mitä tahansa tietotyyppiä ja None muuttuu puuttuvaksi arvoksi.

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

2. DataFrame

Se on kaksiulotteinen nimetty taulukko. Se voi sisältää minkä tahansa tyyppisiä tietoja ja eri kokoisia sarakkeita.

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

Alla oleva tulostettava lunttilappu kokoaa samat komennot yhdelle sivulle.

Tulostettava Panda-huijausarkki, jossa luetellaan sarja- ja DataFrame-komennot

Tietojen tuominen

Pandat voivat lukea useita tiedostotyyppejä suoraan DataFrameen. Jokainen alla oleva lukija palauttaa yhden, ja read_csv () on eniten käytetty.

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

Valinta

Voit valita elementtejä niiden sijainnin tai indeksitunnisteen perusteella. Sama hakasulkeissa käytettävä syntaksi valitsee rivit, sarakkeet ja osiot molemmista rakenteista.

1. Sarja

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

Valinta Boolen indeksoinnilla ja asetuksilla

Käyttää iloc ja iat kokonaislukupaikoille ja loc ja at tarroja varten.

1. Aseman mukaan

df.iloc[0, 1]

df.iat[0, 1]

2. Etiketin mukaan

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

3. Merkin/paikan mukaan

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

4. Boolen indeksointi

Totuusarvoinen maski säilyttää vain rivit, joilla ehto on True. Toinen esimerkki lisää NOT-operaattorin. ~, joten se palauttaa myös arvoja, jotka eivät ole suurempia kuin 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()

Tietojen puhdistus

varten Python tietojen puhdistusta varten, voit suorittaa seuraavat toiminnot:

  • Nimeä sarakkeet uudelleen käyttämällä rename() menetelmällä.
  • Päivitä arvot käyttämällä at[] or iat[] menetelmä tiettyjen elementtien käyttämiseen ja muokkaamiseen.
  • Luo kopio sarjasta tai DataFramesta käyttämällä copy() menetelmällä.
  • Tarkista NULL-arvot käyttämällä isnull() menetelmällä ja pudota ne käyttämällä dropna() menetelmällä.
  • Tarkista kaksoisarvot käyttämällä duplicated() menetelmällä. Pudota ne käyttämällä drop_duplicates() menetelmällä.
  • Korvaa NULL-arvot käyttämällä fillna() menetelmä, jolla on määritetty arvo.
  • Korvaa arvot käyttämällä replace() menetelmällä.
  • Lajittele arvot käyttämällä sort_values() menetelmällä.
  • Järjestä arvot käyttämällä rank() menetelmällä.
# 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()

Huomaa, että s1 = s luo samalle objektille vain toisen nimen, ei koskaan kopiota – siksi copy() seuraa sitä.

Tietojen hakeminen

Voit suorittaa seuraavat toiminnot tiedon hakemiseksi:

  • Käytä shape attribuutti rivien ja sarakkeiden lukumäärän selvittämiseksi.
  • Käytä head() or tail() menetelmä ensimmäisten tai viimeisten rivien hankkimiseksi otoksena.
  • Käytä info(), describe() or dtypes menetelmä tiedon hankkimiseksi tietotyypistä, lukumäärästä, keskiarvosta, keskihajonnasta sekä minimi- ja maksimiarvoista.
  • Käytä count(), min(), max(), sum(), mean() ja median() menetelmiä arvoille ominaisten erityisten tilastotietojen hankkimiseksi.
  • Käytä loc[] menetelmä rivin saamiseksi.
  • Käytä groupby() menetelmä GROUP BY -funktion käyttämiseen ryhmittelemään samankaltaisia ​​arvoja DataFramen sarakkeessa.

1. Perustiedot

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

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

Toimintojen käyttäminen

apply() työntää funktion jokaisen arvon yli. Tasaussäännöt päättävät sitten, mitä tapahtuu, kun kahdella objektilla on sama vain osa indeksistään.

# 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. Sisäisten tietojen kohdistus

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

2. Aritmetiikka Operatäyttömenetelmillä

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

3. Suodata, lajittele ja ryhmittele

Näitä funktioita voidaan käyttää suodattamiseen, lajitteluun ja ryhmittelyynping Sarja- ja DataFrame-objektit.

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

Tietojen vienti

Jokainen alla oleva kirjoittaja peilaa tuontiosiosta tulleen lukijan, joten tiedosto voi kulkea edestakaisin ilman ylimääräisiä työkaluja.

# 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

Jokainen tässä oleva komento on suoritettavissa kumppanimuistikirjassa: Panda-huijauslehti - Python for Data Science.ipynb.

UKK

Kopiointi kirjoitettaessa on aina käytössä, merkkijonot käyttävät erillistä merkkijonotyyppiä ja ketjutettu kohdistaminen suodatetussa kopiossa aiheuttaa ChainedAssignmentError-virheen. Kohdista sen sijaan .loc-tiedoston kautta. Jokainen komento tässä suoritetaan edelleen pandat 3.0.

pd.merge() liittyy jaettuihin avaimiin samalla tavalla kuin SQL join tekee niin, df.join() tasaa indeksin mukaan ja pd.concat() pinoaa kehyksiä. Käytä merge-funktiota avaimille ja concat-funktiota liittämiseen.

df.pivot_table() muuttaa pitkät rivit laajaksi aggregoiduksi ruudukoksi, pd.melt() kääntää tämän päinvastaiseksi ja stack() tai unstack() siirtää tason indeksin ja sarakkeiden välillä.

pd.to_datetime() muuntaa tekstin datetime64-muotoon, .dt-aksorin avulla saat näkyviin vuoden, kuukauden ja viikonpäivän ja resample() laskee aggregaatit päivän, viikon tai kuukauden mukaan, kun kyseinen sarake on indeksi.

Vektorisoidut operaatiot suoritetaan käännetyssä C-kielessä koko taulukon yli, kun taas apply() kutsuu Python funktio kerran riviä kohden. Vaihdaping Rivikohtainen apply()-funktio vektorilausekkeelle on usein kymmenen kertaa nopeampi.

Tekoälyavustajat kuvaavat tuloksen selkeän kuvauksen konkreettisiin kutsuihin ehdottaen groupby-, merge- tai pivot_table-funktioita tarvittavine argumentteineen. Tarkista ehdotus ensin pienellä otoksella.

Kyllä. GitHub Copilot muuttaa kommentit, kuten kurssin mukaan ryhmittely ja laskeminen, toimivaksi Pandas-koodiksi JupyterKäsittele tulostetta luonnoksena ja tarkista rivien määrä.

Välitä dtype käyttäjälle read_csv (), muunna toistuvat tekstisarakkeet kategorioiksi, muunna numerot alaspäin pd.to_numeric-funktiolla ja lataa paloina chunksize-funktiolla. df.info() raportoi todellisen jalanjäljen.

Tiivistä tämä viesti seuraavasti: