Обработка данных включает обработку данных в различных форматах, таких как — объединение, группирование, объединение и т. Д. С целью анализа или подготовки их для использования с другим набором данных. Python имеет встроенные функции для применения этих методов споров к различным наборам данных для достижения аналитической цели. В этой главе мы рассмотрим несколько примеров, описывающих эти методы.
Слияние данных
Библиотека Pandas в python предоставляет единственную функцию merge в качестве точки входа для всех стандартных операций соединения базы данных между объектами DataFrame —
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True)
Давайте теперь создадим два разных DataFrames и выполним операции слияния с ним.
# import the pandas library import pandas as pd left = pd.DataFrame({ 'id':[1,2,3,4,5], 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1','sub2','sub4','sub6','sub5']}) right = pd.DataFrame( {'id':[1,2,3,4,5], 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5']}) print left print right
Его вывод выглядит следующим образом —
Name id subject_id 0 Alex 1 sub1 1 Amy 2 sub2 2 Allen 3 sub4 3 Alice 4 sub6 4 Ayoung 5 sub5 Name id subject_id 0 Billy 1 sub2 1 Brian 2 sub4 2 Bran 3 sub3 3 Bryce 4 sub6 4 Betty 5 sub5
Группировка данных
Группировка наборов данных является частой потребностью в анализе данных, когда нам нужен результат с точки зрения различных групп, присутствующих в наборе данных. У Panadas есть встроенные методы, которые могут сворачивать данные в различные группы.
В приведенном ниже примере мы группируем данные по годам, а затем получаем результат для определенного года.
# import the pandas library import pandas as pd ipl_data = {'Team': ['Riders', 'Riders', 'Devils', 'Devils', 'Kings', 'kings', 'Kings', 'Kings', 'Riders', 'Royals', 'Royals', 'Riders'], 'Rank': [1, 2, 2, 3, 3,4 ,1 ,1,2 , 4,1,2], 'Year': [2014,2015,2014,2015,2014,2015,2016,2017,2016,2014,2015,2017], 'Points':[876,789,863,673,741,812,756,788,694,701,804,690]} df = pd.DataFrame(ipl_data) grouped = df.groupby('Year') print grouped.get_group(2014)
Его вывод выглядит следующим образом —
Points Rank Team Year 0 876 1 Riders 2014 2 863 2 Devils 2014 4 741 3 Kings 2014 9 701 4 Royals 2014
Объединение данных
Pandas предоставляет различные средства для простого объединения объектов Series, DataFrame и Panel . В приведенном ниже примере функция concat выполняет операции конкатенации вдоль оси. Давайте создавать разные объекты и делать конкатенацию.
import pandas as pd one = pd.DataFrame({ 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1','sub2','sub4','sub6','sub5'], 'Marks_scored':[98,90,87,69,78]}, index=[1,2,3,4,5]) two = pd.DataFrame({ 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5'], 'Marks_scored':[89,80,79,97,88]}, index=[1,2,3,4,5]) print pd.concat([one,two])
Его вывод выглядит следующим образом —