Pandas Cheat Sheet pro Data Science in Python

⚡ Chytré shrnutí

Tahy k PANDĚ shrnují nejpoužívanější příkazy knihovny na jednu stránku. Tato příručka je seskupuje podle úkolu: instalace, sestavení řad a datových rámců, import souborů, výběr řádků, čištění dat, použití funkcí a export výsledků.

  • 🔘 Dvě struktury: Series obsahuje jednu označenou dimenzi, zatímco DataFrame obsahuje dvě se smíšenými typy sloupců.
  • ☑️ Importujte cokoli: Funkce read_csv, read_excel, read_sql, read_json a read_html načítají soubory do datového rámce (DataFrame).
  • (Tj. Přesný výběr: Funkce loc vybírá podle popisku, funkce iloc podle pozice a booleovské masky filtrují řádky podle podmínky.
  • 🧪 Spolehlivě čistěte: Funkce isnull, dropna, fillna, drop_duplicates a replace zpracovávají mezery a opakované záznamy.
  • 🛠️ Rychlá kontrola: tvar, informace, typy dat a popis, shrnutí struktury a statistik před zahájením analýzy.
  • ⚠️ Poznámka k verzi: Pandas 3.0 ve výchozím nastavení povoluje kopírování při zápisu, takže zřetězené přiřazení vyvolá chybu.

Pandas Cheat Sheet pro Data Science in Python

Co je to tahák pro Pandy?

Knihovna Pandas nabízí stovky funkcí, ale v každodenní práci se objevuje jen malá podmnožina. Tahák na Pandy je jednostránkový referenční seznam těchto příkazů seskupených podle úkolu, který vykonávají.

Zahrnuje struktury Series a DataFrame, import a export souborů, výběr a řazení dat, čištění hodnot a používání funkcí. Každá níže uvedená část obsahuje krátké vysvětlení se spustitelným kódem, takže stránka slouží také jako opakování vašich znalostí. dovednosti analýzy dat.

👉 Stáhněte si PDF Cheat Sheet zde

Jak nainstalovat a importovat Pandy

Dva příkazy nastavují Pandas a oba běží v terminálu nebo Jupyter zápisník buňka.

Krok 1) Instalace Pandas

Spusťte to jednou pro každé prostředí; v buňce poznámkového bloku před to napište vykřičník.

pip install pandas

Krok 2) Import Pandas

Importujte balíček pod aliasem pd, což každý zde uvedený příklad předpokládá.

import pandas as pd

Nyní můžete volat funkce Pandas pro manipulaci s daty, jejich analýzu a čištění. Níže uvedené sekce jsou uvedeny v pořadí, v jakém je obvykle používáte.

Datové struktury Pandas

Pandas má dvě datové struktury, Série a DataFrameObě jsou označená pole a obě mohou obsahovat libovolný datový typ. Jediný rozdíl je dimenzionalita: Series je jednorozměrné pole a DataFrame je dvourozměrné pole sestavené z nemotorný pole pod nimi.

vlastnost Série DataFrame
Rozměry Jednorozměrný Dvourozměrný
Pojme Jeden sloupec s popiskem Mnoho sloupců, smíšené typy dat
Stavitel pd.Série() pd.DataFrame()

1. Řada

Je to jednorozměrné označené pole. Může obsahovat libovolný datový typ a None stává se chybějící hodnotou.

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

2. DataFrame

Jedná se o dvourozměrné označené pole. Může obsahovat libovolný datový typ a různé velikosti sloupců.

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

Níže uvedený tištěný tahák shromažďuje stejné příkazy na jedné stránce.

Seznam příkazů Series a DataFrame k tisku v Pandas tahákech

Import dat

Pandy dokážou číst mnoho typů souborů přímo do DataFrame. Každý níže uvedený čtecí modul vrátí jeden a read_csv() je nejpoužívanější.

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

Výběr

Prvky můžete vybírat podle jejich umístění nebo podle jejich indexového popisku. Stejná syntaxe hranatých závorek vybírá řádky, sloupce a řezy z obou struktur.

1. Řada

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

Výběr podle logického indexování a nastavení

Použijte iloc a iat pro celočíselné pozice a loc a at pro štítky.

1. Podle pozice

df.iloc[0, 1]

df.iat[0, 1]

2. Podle štítku

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

3. Podle štítku/pozice

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

4. Booleovské indexování

Booleovská maska ​​uchovává pouze řádky, kde je podmínka True. Druhý příklad přidává operátor NOT. ~, takže vrací i hodnoty, které nejsou větší než 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štění dat

Pro Python pro účely cheatů pro čištění dat můžete provádět následující operace:

  • Přejmenujte sloupce pomocí rename() metoda.
  • Aktualizujte hodnoty pomocí at[] or iat[] metoda pro přístup k konkrétním prvkům a jejich úpravu.
  • Vytvořte kopii řady nebo datového rámce pomocí copy() metoda.
  • Zkontrolujte hodnoty NULL pomocí isnull() metodu a odstraňte je pomocí dropna() metoda.
  • Zkontrolujte duplicitní hodnoty pomocí duplicated() metodu. Ukažte je pomocí drop_duplicates() metoda.
  • Nahraďte hodnoty NULL pomocí fillna() metoda se zadanou hodnotou.
  • Nahraďte hodnoty pomocí replace() metoda.
  • Seřadit hodnoty pomocí sort_values() metoda.
  • Seřaďte hodnoty pomocí 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()

Všimněte si, že s1 = s vytváří pouze druhý název pro stejný objekt, nikdy kopii – proto copy() následuje to.

Načítání informací

Pro načtení informací můžete provést tyto operace:

  • Použití shape atribut pro získání počtu řádků a sloupců.
  • Použití head() or tail() metoda pro získání prvních nebo posledních několika řádků jako vzorku.
  • Použití info(), describe() or dtypes metoda pro získání informací o datovém typu, počtu, průměru, směrodatné odchylce, minimálních a maximálních hodnotách.
  • Použití count(), min(), max(), sum(), mean() a median() metody pro získání specifických statistických informací o hodnotách.
  • Použití loc[] metoda pro získání řádku.
  • Použití groupby() metoda pro použití funkce GROUP BY k seskupení podobných hodnot ve sloupci datového rámce.

1. Základní informace

# 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. Shrnutí

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

Použití funkcí

apply() vloží funkci do každé hodnoty. Pravidla zarovnání pak určují, co se stane, když dva objekty sdílejí pouze část svého indexu.

# 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. Vnitřní zarovnání dat

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

2. Aritmetika Operas metodami výplně

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

3. Filtr, řazení a seskupování

Tyto funkce lze použít k filtrování, řazení a seskupováníping Objekty Series a DataFrame.

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

Export dat

Každý níže uvedený zapisovač zrcadlí čtečku z importní sekce, takže soubor může absolvovat celou cestu bez dalších nástrojů.

# 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

Každý příkaz zde lze spustit v doprovodném poznámkovém bloku: Cheat Sheet pro pandy – Python pro Data Science.ipynb.

Nejčastější dotazy

Kopírování při zápisu je vždy povoleno, řetězce používají vyhrazený typ str a zřetězené přiřazení filtrované kopie vyvolává chybu ChainedAssignmentError. Místo toho přiřaďte pomocí .loc. Každý příkaz zde stále běží na pandy 3.0.

pd.merge() se připojuje ke sdíleným klíčům stejným způsobem jako SQL Funkce join provádí zarovnání, df.join() zarovnává index a pd.concat() stohuje rámce. Pro klíče použijte merge, pro přidávání concat.

df.pivot_table() přemění dlouhé řádky na širokou agregovanou mřížku, pd.melt() to obrátí a stack() nebo unstack() posune úroveň mezi indexem a sloupci.

pd.to_datetime() převádí text na datetime64, přístupový objekt .dt zpřístupňuje rok, měsíc a den v týdnu a resample() agreguje podle dne, týdne nebo měsíce, jakmile je daný sloupec indexován.

Vektorizované operace běží v kompilovaném jazyce C nad celým polem, zatímco apply() volá Python funkce jednou za řádek. Prohoditping Řádkové zpracování vektorizovaného výrazu metodou apply() je často desetkrát rychlejší.

Asistenti s umělou inteligencí mapují prostý popis výsledku na konkrétní volání a navrhují metody groupby, merge nebo pivot_table s potřebnými argumenty. Nejprve ověřte návrh na malém vzorku.

Ano. GitHub Copilot promění komentář, jako například group by course a count, do funkčního kódu Pandas uvnitř JupyterVýstup považovat za koncept a zkontrolovat počet řádků.

Předat dtype do read_csv(), převeďte opakované textové sloupce do kategorií, převeďte čísla dolů pomocí pd.to_numeric a načtěte je po částech pomocí chunksize. df.info() hlásí skutečnou velikost.

Shrňte tento příspěvek takto: