Pandas Cheat Sheet за Data Science в Python
⚡ Умно обобщение
Шпаргалките на Pandas събират най-използваните команди на библиотеката на една страница. Този справочник ги групира по задача: инсталиране, изграждане на серии и рамки с данни, импортиране на файлове, избиране на редове, почистване на данни, прилагане на функции и експортиране на резултати.
Какво е шпаргалка за Панда?
Библиотеката Pandas предлага стотици функции, но само малка част от тях се появява в ежедневната работа. Шпаргалка за панди е едностраничен справочник, в който са изброени тези команди, групирани по задачата, която изпълняват.
Той обхваща структурите Series и DataFrame, импортирането и експортирането на файлове, избирането и подреждането на данни, почистването на стойности и прилагането на функции. Всеки раздел по-долу съчетава кратко обяснение с изпълним код, така че страницата служи и като опреснителен материал за вашите... умения за анализ на данни.
👉 Изтеглете PDF файла Cheat Sheet тук
Как да инсталирате и импортирате Pandas
Две команди настройват Pandas и двете се изпълняват в терминал или Jupyter Ноутбук клетка.
Стъпка 1) Инсталиране на Pandas
Изпълнете това веднъж за всяка среда; поставете пред него удивителен знак в клетка на бележник.
pip install pandas
Стъпка 2) Импортиране на Pandas
Импортирайте пакета под псевдонима pd, което всеки пример тук предполага.
import pandas as pd
Вече можете да извиквате функции на Pandas, за да манипулирате, анализирате и почиствате данни. Разделите по-долу ги изброяват в реда, в който обикновено ги използвате.
Структури на данни на Pandas
Pandas има две структури от данни, Серия намлява DataFrameИ двата са етикетирани масиви и могат да съдържат данни от всякакъв тип. Единствената разлика е размерността: серията е едномерен масив, а DataFrame е двумерен масив, изграден от numpy масиви отдолу.
| Особеност | Серия | DataFrame |
|---|---|---|
| Размери | Едноизмерен | Двуизмерен |
| Приема | Една етикетирана колона | Много колони, смесени dtype-ове |
| конструктор | pd.Серия() | pd.DataFrame() |
1. Серия
Това е едномерен етикетиран масив. Може да съдържа данни от всякакъв тип и None се превръща в липсваща стойност.
s = pd.Series([2, -4, 6, 3, None], index=['A', 'B', 'C', 'D', 'E'])
2. DataFrame
Това е двуизмерен етикетиран масив. Може да съдържа всякакъв тип данни и колони с различни размери.
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()
Разпечатаният по-долу лист с инструкции събира същите команди на една страница.
Импортиране на данни
Пандите могат да четат много типове файлове директно в DataFrame. Всеки четец по-долу връща един и read_csv() е най-използваният.
# 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)
селекция
Можете да избирате елементи по тяхното местоположение или по техния индексен етикет. Същият синтаксис с квадратни скоби избира редове, колони и срезове и от двете структури.
1. Серия
# 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]
Избор чрез булево индексиране и настройка
употреба iloc намлява iat за целочислени позиции и loc намлява at за етикети.
1. По длъжност
df.iloc[0, 1] df.iat[0, 1]
2. По етикет
df.loc[[0], ['Name']]
3. По етикет/позиция
df.loc[2] # Both are same
df.iloc[2]
4. Булево индексиране
Булевата маска запазва само редове, където условието е True. Вторият пример добавя оператора NOT. ~, така че връща и стойности, които не са по-големи от 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()
Почистване на данни
За Python за целите на измамнически лист за почистване на данни можете да извършите следните операции:
- Преименувайте колони, като използвате
rename()метод. - Актуализирайте стойностите, използвайки
at[]oriat[]метод за достъп и промяна на специфични елементи. - Създайте копие на серия или DataFrame, използвайки
copy()метод. - Проверете за NULL стойности, използвайки
isnull()метод и ги пуснете, използвайкиdropna()метод. - Проверете за дублиращи се стойности, като използвате
duplicated()метод. Пуснете ги, използвайкиdrop_duplicates()метод. - Заменете NULL стойностите с помощта на
fillna()метод с определена стойност. - Заменете стойностите, използвайки
replace()метод. - Сортирайте стойностите, използвайки
sort_values()метод. - Класирайте стойностите, използвайки
rank()метод.
# 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()
Имайте предвид, че s1 = s създава само второ име за същия обект, никога копие — ето защо copy() следва го.
Извличане на информация
Можете да извършите тези операции, за да извлечете информация:
- Използвайте
shapeатрибут, за да получите броя на редовете и колоните. - Използвайте
head()ortail()метод за получаване на първите или последните няколко реда като пример. - Използвайте
info(),describe()ordtypesметод за получаване на информация за типа данни, броя, средната стойност, стандартното отклонение, минималните и максималните стойности. - Използвайте
count(),min(),max(),sum(),mean()намляваmedian()методи за получаване на специфична статистическа информация за стойности. - Използвайте
loc[]метод за получаване на ред. - Използвайте
groupby()метод за прилагане на функцията GROUP BY за групиране на подобни стойности в колона на DataFrame.
1. Основна информация
# 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. Обобщение
# 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()
Прилагане на функции
apply() изпраща функция през всяка стойност. Правилата за подравняване след това решават какво се случва, когато два обекта споделят само част от индекса си.
# 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. Вътрешно подравняване на данните
# NA values for indices that don't overlap s2 = pd.Series([8, -1, 4], index=['A', 'C', 'D']) s + s2
2. Аритметика Operaции с методи за попълване
# Fill values that don't overlap
s.add(s2, fill_value=0)
3. Филтриране, сортиране и групиране по
Тези функции могат да се използват за филтриране, сортиране и групиранеping Обекти Series и 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 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 на Cheat Sheet
Всяка команда тук може да се изпълни в придружаващия бележник: Pandas Cheat Sheet – Python за Data Science.ipynb.

