Python - Đánh lừa dữ liệu

Bao bọc dữ liệu bao gồm việc xử lý dữ liệu ở các định dạng khác nhau như - hợp nhất, nhóm, nối, v.v. nhằm mục đích phân tích hoặc chuẩn bị sẵn sàng sử dụng chúng với một tập dữ liệu khác. Python có các tính năng tích hợp để áp dụng các phương pháp bao bọc này cho các tập dữ liệu khác nhau nhằm đạt được mục tiêu phân tích. Trong chương này, chúng ta sẽ xem xét một số ví dụ mô tả các phương pháp này.

Hợp nhất dữ liệu

Thư viện Pandas trong python cung cấp một chức năng duy nhất, merge, là điểm nhập cho tất cả các hoạt động kết hợp cơ sở dữ liệu tiêu chuẩn giữa các đối tượng DataFrame -

pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,
left_index=False, right_index=False, sort=True)

Bây giờ chúng ta hãy tạo hai DataFrame khác nhau và thực hiện các thao tác hợp nhất trên nó.

# 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

Nó là output như sau -

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

Nhóm dữ liệu

Nhóm các tập dữ liệu là một nhu cầu thường xuyên trong phân tích dữ liệu, nơi chúng ta cần kết quả về các nhóm khác nhau có trong tập dữ liệu. Panadas có các phương pháp tích hợp có thể cuộn dữ liệu thành nhiều nhóm khác nhau.

Trong ví dụ dưới đây, chúng tôi nhóm dữ liệu theo năm và sau đó lấy kết quả cho một năm cụ thể.

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

Nó là output như sau -

Points  Rank     Team    Year
0     876     1   Riders    2014
2     863     2   Devils    2014
4     741     3   Kings     2014
9     701     4   Royals    2014

Kết nối dữ liệu

Pandas cung cấp nhiều tiện ích khác nhau để dễ dàng kết hợp với nhau Series, DataFramePanelcác đối tượng. Trong ví dụ dưới đây,concathàm thực hiện các phép toán nối dọc theo một trục. Hãy để chúng tôi tạo các đối tượng khác nhau và thực hiện nối.

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

Nó là output như sau -

Marks_scored     Name   subject_id
1             98     Alex         sub1
2             90      Amy         sub2
3             87    Allen         sub4
4             69    Alice         sub6
5             78   Ayoung         sub5
1             89    Billy         sub2
2             80    Brian         sub4
3             79     Bran         sub3
4             97    Bryce         sub6
5             88    Betty         sub5