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, DataFramevà Panelcá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