Ściągawka Pandas do nauki o danych w Python

⚡ Inteligentne podsumowanie

Ściągawki Pandasa skupiają najczęściej używane polecenia biblioteki na jednej stronie. Ten podręcznik grupuje je według zadań: instalacja, budowanie serii i ramek danych, importowanie plików, zaznaczanie wierszy, czyszczenie danych, stosowanie funkcji i eksportowanie wyników.

  • 🔘 Dwie struktury: Series zawiera jeden oznaczony wymiar, natomiast DataFrame zawiera dwa wymiary z mieszanymi typami kolumn.
  • Importuj cokolwiek: read_csv, read_excel, read_sql, read_json i read_html ładują pliki do DataFrame.
  • Dokładny wybór: loc wybiera według etykiety, iloc według pozycji, a maski logiczne filtrują wiersze według warunku.
  • 🧪 Czyść niezawodnie: isnull, dropna, fillna, drop_duplicates oraz zastąpienie luk i powtórzonych rekordów.
  • 🛠️. Sprawdź szybko: kształt, informacje, typy danych oraz opis, podsumowanie struktury i statystyk przed rozpoczęciem analizy.
  • ⚠️ Uwaga dotycząca wersji: W systemie pandas 3.0 funkcja Copy-on-Write jest domyślnie włączona, więc przypisanie łańcuchowe powoduje błąd.

Ściągawka Pandas do nauki o danych w Python

Czym jest ściągawka Pandas?

Biblioteka Pandas zawiera setki funkcji, jednak w codziennej pracy pojawia się tylko ich niewielki podzbiór. ściągawka do Pand jest jednostronicowym spisem poleceń pogrupowanych według zadań, które wykonują.

Obejmuje struktury serii i ramek danych, importowanie i eksportowanie plików, wybieranie i porządkowanie danych, czyszczenie wartości oraz stosowanie funkcji. Każda sekcja poniżej zawiera krótkie wyjaśnienie z kodem, który można uruchomić, więc strona służy również jako przypomnienie. umiejętności analizy danych.

👉 Pobierz tutaj plik PDF z ściągawką

Jak zainstalować i zaimportować Pandas

Dwa polecenia konfigurują Pandas i oba uruchamiają się w terminalu lub Jupyter Notatnik komórek.

Krok 1) Zainstaluj Pandas

Uruchom tę komendę raz w każdym środowisku, poprzedzając ją wykrzyknikiem w komórce notatnika.

pip install pandas

Krok 2) Importowanie Pandas

Zaimportuj pakiet pod aliasem pd, co zakłada każdy przykład tutaj.

import pandas as pd

Możesz teraz wywoływać funkcje Pandas do manipulowania, analizowania i czyszczenia danych. Poniższe sekcje zawierają listę funkcji w kolejności, w jakiej zazwyczaj po nie sięgasz.

Struktury danych pand

Pandas ma dwie struktury danych, Seria oraz Ramka danychObie tablice są tablicami z etykietami i obie mogą przechowywać dowolny typ danych. Jedyną różnicą jest wymiarowość: seria to tablica jednowymiarowa, a ramka danych to tablica dwuwymiarowa zbudowana z numpy tablice poniżej.

Cecha Seria Ramka danych
Wymiary Jednowymiarowy Dwuwymiarowy
Mieści Pojedyncza oznaczona kolumna Wiele kolumn, mieszane typy danych
Konstruktor pd.Seria() pd.DataFrame()

1. Seria

Jest to jednowymiarowa tablica z etykietami. Może przechowywać dowolny typ danych i None staje się wartością brakującą.

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

2. Ramka danych

Jest to dwuwymiarowa tablica z etykietami. Może przechowywać dowolny typ danych i kolumny o różnych rozmiarach.

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

Poniższa ściągawka do wydrukowania zawiera te same polecenia na jednej stronie.

Wydrukowana ściągawka Pandas z listą poleceń serii i ramek danych

Importowanie danych

Pandas potrafi odczytać wiele typów plików bezpośrednio do DataFrame. Każdy czytnik poniżej zwraca jeden, a read_csv () jest najczęściej używany.

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

Wybór

Możesz wybierać elementy według ich lokalizacji lub etykiety indeksu. Ta sama składnia z nawiasami kwadratowymi wybiera wiersze, kolumny i wycinki z obu struktur.

1. Seria

# 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. Ramka danych

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

Wybieranie poprzez indeksowanie i ustawianie logiczne

Zastosowanie iloc oraz iat dla pozycji całkowitych i loc oraz at dla etykiet.

1. Według pozycji

df.iloc[0, 1]

df.iat[0, 1]

2. Według etykiety

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

3. Według etykiety/pozycji

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

4. Indeksowanie logiczne

Maska logiczna zachowuje tylko wiersze, dla których warunek jest spełniony. Drugi przykład dodaje operator NOT. ~, więc zwraca również wartości, które nie są większe niż 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()

Czyszczenie danych

Dla litu szacuje się Python W celu oczyszczenia danych możesz wykonać następujące operacje:

  • Zmień nazwy kolumn za pomocą rename() Metoda.
  • Zaktualizuj wartości za pomocą at[] or iat[] metoda dostępu i modyfikacji określonych elementów.
  • Utwórz kopię serii lub ramki danych za pomocą copy() Metoda.
  • Sprawdź wartości NULL za pomocą isnull() metodę i usuń je za pomocą dropna() Metoda.
  • Sprawdź duplikaty wartości za pomocą duplicated() metoda. Usuń je za pomocą drop_duplicates() Metoda.
  • Zastąp wartości NULL za pomocą fillna() metoda z określoną wartością.
  • Zastąp wartości za pomocą replace() Metoda.
  • Sortuj wartości za pomocą sort_values() Metoda.
  • Uporządkuj wartości, używając 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()

Należy pamiętać, że s1 = s tworzy tylko drugą nazwę dla tego samego obiektu, nigdy kopię — dlatego copy() następuje po nim.

Odzyskiwanie informacji

Aby pobrać informacje, możesz wykonać następujące operacje:

  • Użyj shape atrybut umożliwiający uzyskanie liczby wierszy i kolumn.
  • Użyj head() or tail() metoda uzyskania pierwszych lub ostatnich kilku wierszy jako próbki.
  • Użyj info(), describe() or dtypes metoda uzyskiwania informacji o typie danych, liczbie, średniej, odchyleniu standardowym, wartościach minimalnych i maksymalnych.
  • Użyj count(), min(), max(), sum(), mean() oraz median() metody uzyskiwania szczegółowych informacji statystycznych dla wartości.
  • Użyj loc[] metoda uzyskania wiersza.
  • Użyj groupby() metoda zastosowania funkcji GROUP BY w celu grupowania podobnych wartości w kolumnie DataFrame.

1. Podstawowe informacje

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

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

Stosowanie funkcji

apply() Przesuwa funkcję przez każdą wartość. Reguły wyrównania decydują następnie, co się stanie, gdy dwa obiekty będą miały wspólny tylko fragment indeksu.

# 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. Wewnętrzne wyrównanie danych

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

2. Arytmetyka Operaz metodami wypełniania

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

3. Filtruj, sortuj i grupuj według

Funkcje te można wykorzystać do filtrowania, sortowania i grupowaniaping Obiekty serii i 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)

Eksportowanie danych

Każdy z autorów poniżej odzwierciedla czytelnika z sekcji importującej, dzięki czemu plik może podróżować w obie strony bez dodatkowych narzędzi.

# 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 ściągawki

Każde polecenie tutaj można uruchomić w towarzyszącym notatniku: Ściągawka Pandy – Python dla Data Science.ipynb.

FAQ

Kopiowanie przy zapisie jest zawsze włączone, ciągi znaków używają dedykowanego typu danych str, a łańcuchowe przypisanie do filtrowanej kopii powoduje błąd ChainedAssignmentError. Zamiast tego przypisz przez .loc. Każde polecenie tutaj nadal działa. pandy 3.0.

pd.merge() łączy się na podstawie współdzielonych kluczy w taki sam sposób, w jaki SQL Funkcja join działa, df.join() wyrównuje do indeksu, a pd.concat() układa ramki w stosy. Użyj merge dla kluczy, concat dla dołączania.

df.pivot_table() zamienia długie wiersze w szeroką siatkę agregacji, pd.melt() odwraca ten proces, a stack() lub unstack() przesuwają poziom pomiędzy indeksem a kolumnami.

pd.to_datetime() konwertuje tekst na datetime64, akcesor .dt udostępnia rok, miesiąc i dzień tygodnia, a resample() agreguje według dnia, tygodnia lub miesiąca, gdy dana kolumna jest indeksem.

Operacje wektorowe są wykonywane w skompilowanym języku C na całej tablicy, podczas gdy apply() wywołuje Python funkcja raz na wiersz. Zamieńping wierszowe wywołanie apply() dla wyrażenia wektorowego jest często dziesięć razy szybsze.

Asystenci AI mapują prosty opis wyniku na konkretne wywołania, sugerując funkcje groupby, merge lub pivot_table z argumentami, których każda z nich potrzebuje. Najpierw zweryfikuj sugestię na małej próbce.

Tak. Drugi pilot GitHub zamienia komentarz, taki jak „grupuj według kursu” i „licz”, na działający kod Pandas w środku Jupyter. Potraktuj wynik jako wersję roboczą i sprawdź liczbę wierszy.

Przekaż typ danych do read_csv (), konwertuj powtarzające się kolumny tekstu na kategorie, wykonuj rzutowanie liczb za pomocą pd.to_numeric i ładuj w częściach za pomocą chunksize. df.info() raportuje rzeczywisty rozmiar.

Podsumuj ten post następująco: