Panda petuleht andmeteaduse jaoks Python

โšก Nutikas kokkuvรตte

Panda spikrid koondavad teeki enimkasutatud kรคsud รผhele lehele. Need on rรผhmitatud รผlesannete kaupa: installimine, seeriate ja andmeraamide loomine, failide importimine, ridade valimine, andmete puhastamine, funktsioonide rakendamine ja tulemuste eksportimine.

  • ๐Ÿ”˜ Kaks struktuuri: Seeria sisaldab รผhte sildistatud dimensiooni, DataFrame aga kahte segatud veerutรผรผpidega.
  • โ˜‘๏ธ Impordi midagi: read_csv, read_excel, read_sql, read_json ja read_html laadivad failid DataFrame'i.
  • โœ… Tรคpne valik: loc valib sildi jรคrgi, Iloc positsiooni jรคrgi ja Boole'i โ€‹โ€‹maskid filtreerivad ridu tingimuse jรคrgi.
  • ๐Ÿงช Puhastage usaldusvรครคrselt: isnull, dropna, fillna, drop_duplicates ja asendavad kรคepidemete lรผngad ja korduvad kirjed.
  • ๐Ÿ› ๏ธ Kiire kontroll: Kuju, info, andmetรผรผbid ja kirjeldus, struktuuri ja statistika kokkuvรตte enne analรผรผsi alustamist.
  • โš ๏ธ Versiooni mรคrkus: pandas 3.0 lubab vaikimisi kopeerimise kirjutamisel, seega aheldatud omistamine tekitab vea.

Panda petuleht andmeteaduse jaoks Python

Mis on Pandade spikker?

Pandase teek sisaldab sadu funktsioone, kuid igapรคevatรถรถs esineb neist vaid vรคike osa. Pandade spikker on รผhelehekรผljeline teatmik, mis loetleb need kรคsud rรผhmitatud vastavalt nende tรคidetavale รผlesandele.

See hรตlmab seeria ja andmeraami struktuure, failide importimist ja eksportimist, andmete valimist ja jรคrjestamist, vรครคrtuste puhastamist ning funktsioonide rakendamist. Iga allolev jaotis on seotud lรผhikese selgitusega ja kรคivitatava koodiga, seega toimib leht ka meeldetuletusena teie... andmeanalรผรผsi oskus.

๐Ÿ‘‰ Laadige petulehe PDF alla siit

Kuidas Pandasid installida ja importida

Pandad seadistatakse kahe kรคsuga ja mรตlemad tรถรถtavad terminalis vรตi Jupyter mรคrkmik rakk.

1. samm) Paigaldage Pandas

Kรคivita see รผks kord keskkonnas; lisa sellele mรคrkmiku lahtris hรผรผumรคrk ette.

pip install pandas

2. samm) Impordi pandad

Impordi pakett aliase all pd, mida iga siinne nรคide eeldab.

import pandas as pd

Nรผรผd saate andmete manipuleerimiseks, analรผรผsimiseks ja puhastamiseks kutsuda Panda funktsioone. Allolevates jaotistes on need loetletud jรคrjekorras, milles te neid tavaliselt kasutate.

Panda andmestruktuurid

Pandadel on kaks andmestruktuuri, Seeria ja DataFrameMรตlemad on sildistatud massiivid ja mรตlemad vรตivad sisaldada mis tahes andmetรผรผpi. Ainus erinevus on dimensioonilisus: seeria (Series) on รผhemรตรตtmeline massiiv ja andmeframe (DataFrame) on kahemรตรตtmeline massiiv, mis on ehitatud ... tuim massiivid all.

tunnusjoon Seeria DataFrame
Padjapรผรผri mรตรตt รœhemรตรตtmeline Kahemรตรตtmeline
Hoiab รœks sildistatud veerg Palju veerge, segatud andmetรผรผbid
Ehitaja pd.Series() pd.DataFrame()

1. Sari

See on รผhemรตรตtmeline sildistatud massiiv. See vรตib sisaldada mis tahes andmetรผรผpi ja None muutub puuduvaks vรครคrtuseks.

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

2. DataFrame

See on kahemรตรตtmeline sildistatud massiiv. See vรตib sisaldada mis tahes andmetรผรผpi ja erineva suurusega veerge.

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

Allolev prinditav spikker koondab samad kรคsud รผhele lehele.

Prinditav Pandade spikker, mis loetleb seeria- ja DataFrame'i kรคske

Andmete importimine

Pandad saavad lugeda mitut tรผรผpi faile otse DataFrame'i. Iga allolev lugeja tagastab รผhe ja read_csv() on enimkasutatav.

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

Valik

Elemente saab valida nende asukoha vรตi indeksi sildi jรคrgi. Sama nurksulgudes sรผntaks valib read, veerud ja sektorid mรตlemast struktuurist.

1. Sari

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

Valimine Boole'i โ€‹โ€‹indekseerimise ja seadistuse jรคrgi

Kasutama iloc ja iat tรคisarvuliste positsioonide jaoks ja loc ja at siltide jaoks.

1. Positsiooni jรคrgi

df.iloc[0, 1]

df.iat[0, 1]

2. Sildi jรคrgi

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

3. Sildi/positsiooni jรคrgi

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

4. Boole'i โ€‹โ€‹indekseerimine

Boole'i โ€‹โ€‹mask sรคilitab ainult read, mille tingimus on True. Teises nรคites lisatakse NOT-operaator. ~, seega tagastab see ka vรครคrtused, mis ei ole suuremad kui 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()

Andmete puhastamine

eest Python petulehtede andmete puhastamise eesmรคrgil saate teha jรคrgmisi toiminguid:

  • Nimeta veerud รผmber, kasutades rename() meetod.
  • Vรครคrtuste vรคrskendamine, kasutades at[] or iat[] meetod teatud elementidele juurdepรครคsuks ja nende muutmiseks.
  • Looge seeriast vรตi DataFrame'ist koopia, kasutades funktsiooni copy() meetod.
  • Kontrollige NULL-vรครคrtusi, kasutades isnull() meetodit ja eemaldage need, kasutades dropna() meetod.
  • Kontrollige duplikaatvรครคrtusi, kasutades duplicated() meetod. Vabastage need, kasutades drop_duplicates() meetod.
  • Asendage NULL-vรครคrtused, kasutades fillna() meetod mรครคratud vรครคrtusega.
  • Asendage vรครคrtused, kasutades replace() meetod.
  • Sorteeri vรครคrtusi, kasutades sort_values() meetod.
  • Jรคrjesta vรครคrtused, kasutades rank() meetod.
# 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()

Pange tรคhele, et s1 = s loob samale objektile ainult teise nime, mitte kunagi koopiat โ€“ seepรคrast copy() jรคrgneb sellele.

Teabe otsimine

Teabe saamiseks saate teha jรคrgmisi toiminguid:

  • Kasuta shape atribuut ridade ja veergude arvu saamiseks.
  • Kasuta head() or tail() meetod esimese vรตi viimase paari rea valimi saamiseks.
  • Kasuta info(), describe() or dtypes meetod andmetรผรผbi, arvu, keskmise, standardhรคlbe, miinimum- ja maksimumvรครคrtuste kohta teabe saamiseks.
  • Kasuta count(), min(), max(), sum(), mean() ja median() meetodid vรครคrtuste kohta konkreetse statistilise teabe saamiseks.
  • Kasuta loc[] meetod rea saamiseks.
  • Kasuta groupby() meetod GROUP BY funktsiooni rakendamiseks sarnaste vรครคrtuste rรผhmitamiseks DataFrame'i veerus.

1. Pรตhiandmed

# 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. Kokkuvรตte

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

Funktsioonide rakendamine

apply() lรผkkab funktsiooni iga vรครคrtuse peale. Joondusreeglid otsustavad seejรคrel, mis juhtub, kui kahel objektil on รผhine ainult osa oma indeksist.

# 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. Siseandmete joondamine

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

2. Aritmeetika Operatรคitmismeetoditega

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

3. Filtreeri, sorteeri ja rรผhmita

Neid funktsioone saab kasutada filtreerimiseks, sortimiseks ja rรผhmitamiseksping Seeria- ja DataFrame-objektid.

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

Andmete eksportimine

Iga allolev kirjutaja peegeldab importiva osa lugejat, seega saab fail edasi-tagasi liikuda ilma lisatรถรถriistadeta.

# 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

Iga siinne kรคsk on kรคivitatav kaasasolevas mรคrkmikus: Panda petuleht โ€“ Python jaoks Data Science.ipynb.

KKK

Kirjutamisel kopeerimine on alati lubatud, stringid kasutavad spetsiaalset stringi tรผรผpi ja filtreeritud koopia aheldatud omistamine tekitab vea โ€žChainedAssignmentErrorโ€œ. Mรครคrake hoopis .loc-faili kaudu. Iga kรคsk siin tรถรถtab endiselt pandad 3.0.

pd.merge() liitub jagatud vรตtmete abil samamoodi nagu a SQL join teeb seda, df.join() joondab indeksi jรคrgi ja pd.concat() virnastab kaadreid. Vรตtmete jaoks kasuta merge'i ja lisamiseks concat'i.

df.pivot_table() muudab pikad read laiaks koondruudustikuks, pd.melt() pรถรถrab selle รผmber ja stack() vรตi unstack() liigutab taseme indeksi ja veergude vahel.

pd.to_datetime() teisendab teksti datetime64-ks, .dt-juurdepรครคsufunktsioon kuvab aasta, kuu ja nรคdalapรคeva ning resample() koondab pรคeva, nรคdala vรตi kuu kaupa, kui see veerg on indeks.

Vektoriseeritud operatsioonid kรคivitatakse kompileeritud C-s kogu massiivi ulatuses, samas kui apply() kutsub esile a Python funktsioon รผks kord rea kohta. Vahetaping Vektoriseeritud avaldise puhul on ridade kaupa apply() funktsioon sageli kรผmme korda kiirem.

Tehisintellekti assistendid kaardistavad tulemuse lihtsa kirjelduse konkreetsetele pรคringutele, pakkudes vรคlja groupby, merge vรตi pivot_table funktsioone koos igaรผhe vajalike argumentidega. Kontrollige soovitust kรตigepealt vรคikese valimi peal.

Jah. GitHubi koopia muudab kommentaarid, nรคiteks kursuse jรคrgi rรผhmitamine ja loendamine, toimivaks Pandas koodiks JupyterKรคsitle vรคljundit mustandina ja kontrolli ridade arvu.

Edasta andmetรผรผp kasutajale read_csv(), teisenda korduvad tekstiveerud kategooriateks, teisenda numbrid allapoole funktsiooniga pd.to_numeric ja laadi tรผkkidena funktsiooniga chunksize. df.info() annab teada tegeliku jalajรคlje.

Vรตta see postitus kokku jรคrgmiselt: