Đổi mới trong công nghệ trao quyền cho Khu vực phát triển ứng dụng như thế nào? 1

Cách truy vấn khung dữ liệu gấu trúc của bạn

Nút nguồn: 1017694

Cách truy vấn khung dữ liệu gấu trúc của bạn

Quan điểm của Nhà khoa học dữ liệu về các hàm Python giống như SQL.


By Matthew Przybyla, Nhà khoa học dữ liệu cấp cao tại Phân phối ưu đãi



Photo by Bruce Hồng on Unsplash [1.

Mục lục

 
 

  1. Giới thiệu
  2. Nhiều điều kiện
  3. Hợp nhất trên nhiều cột cụ thể
  4. Tổng kết
  5. dự án

Giới thiệu

 
 
Cho dù bạn đang chuyển đổi từ một kỹ sư dữ liệu/nhà phân tích dữ liệu hay muốn trở thành một nhà khoa học dữ liệu hiệu quả hơn, việc truy vấn khung dữ liệu của bạn có thể được chứng minh là một phương pháp khá hữu ích để trả về các hàng cụ thể mà bạn muốn. Điều quan trọng cần lưu ý là có một hàm truy vấn cụ thể dành cho gấu trúc, được đặt tên thích hợp, query. Tuy nhiên, thay vào đó tôi sẽ thảo luận về những cách khác mà bạn có thể bắt chước truy vấn, lọc và hợp nhất dữ liệu của mình. Chúng tôi sẽ trình bày các tình huống hoặc câu hỏi phổ biến mà bạn sẽ hỏi đối với dữ liệu của mình và thay vì SQL, chúng tôi sẽ thực hiện điều đó bằng Python. Trong các đoạn bên dưới, tôi sẽ phác thảo một số cách truy vấn hàng đơn giản cho khung dữ liệu gấu trúc của bạn bằng ngôn ngữ lập trình Python.

Nhiều điều kiện

 
 



Dữ liệu mẫu. Ảnh chụp màn hình từ Tác giả [2].

 

Với tư cách là nhà khoa học dữ liệu hoặc nhà phân tích dữ liệu, chúng tôi muốn trả về các hàng dữ liệu cụ thể. Một trong những tình huống này là khi bạn muốn áp dụng nhiều điều kiện, tất cả trong cùng một dòng mã. Để hiển thị ví dụ của mình, tôi đã tạo một số dữ liệu mẫu giả về họ và tên, cũng như giới tính và ngày sinh tương ứng của họ. Dữ liệu này được hiển thị ở trên trong ảnh chụp màn hình.

Ví dụ về nhiều điều kiện về cơ bản sẽ trả lời một câu hỏi cụ thể, giống như khi bạn sử dụng SQL. Câu hỏi đặt ra là bao nhiêu phần trăm dữ liệu của chúng tôi thuộc về giới tính Nam? OR một người sinh từ năm 2010 đến năm 2021.

Đây là đoạn mã sẽ giải quyết câu hỏi đó (có một số cách để trả lời câu hỏi này, nhưng đây là cách làm cụ thể của tôi):

print(“Percent of data who are Males OR were born between 2010 and 2021:”, 100*round(df[(df[‘Gender’] == ‘M’) | (df[‘Birthdate’] >= ‘2010–01–01’) & (df[‘Birthdate’] <= ‘2021–01–01’)][‘Gender’].count()/df.shape [0],4), “%”)

Để hình dung rõ hơn mã này, tôi cũng đã đưa vào ảnh chụp màn hình của cùng mã đó ở trên, cùng với đầu ra/kết quả. Bạn cũng có thể áp dụng các điều kiện này để trả về các hàng thực tế thay vì lấy tỷ lệ hoặc phần trăm số hàng trên tổng số hàng.



Mã điều kiện Ảnh chụp màn hình của tác giả [3].

 

Đây là thứ tự các lệnh chúng tôi đã thực hiện:

  • Trả về hàng có Nam Gender
  • Bao gồm cái OR chức năng |
  • Trả về các hàng của Birthdate > 2010 và 2021
  • Kết hợp tất cả những thứ đó rồi chia cho tổng số hàng

Như bạn có thể thấy, mã này tương tự như mã bạn thấy trong SQL. Cá nhân tôi nghĩ rằng nó dễ dàng hơn trong gấu trúc vì nó có thể ít mã hơn, đồng thời có thể nhìn thấy trực quan tất cả mã ở một vị trí dễ dàng mà không cần phải cuộn lên xuống (nhưng định dạng này chỉ là sở thích của tôi).

Hợp nhất trên nhiều cột cụ thể

 
 



Kết quả khung dữ liệu được hợp nhất. Ảnh chụp màn hình của tác giả [4].

 

Có lẽ chúng ta đã thấy cách hợp nhất các khung dữ liệu với nhau trong các hướng dẫn khác, vì vậy tôi muốn thêm một cách tiếp cận độc đáo mà tôi chưa thực sự thấy ở đó, đó là hợp nhất trên nhiều cột cụ thể. Trong trường hợp này, chúng tôi muốn nối hai khung dữ liệu trong đó hai trường được chia sẻ giữa chúng. Bạn có thể biết rằng nếu có nhiều cột hơn nữa thì phương pháp này có thể hữu ích hơn nữa.

Chúng tôi có khung dữ liệu đầu tiên, đó là df, sau đó chúng tôi sẽ hợp nhất các cột của mình trên khung dữ liệu thứ hai, df2. Đây là mã để đạt được kết quả mong đợi của chúng tôi:

merged_df = df.merge(df2, how=’inner’, left_on=cols, right_on=cols )

Để hình dung rõ hơn việc hợp nhất và mã này, tôi đã trình bày ảnh chụp màn hình bên dưới. Bạn thấy khung dữ liệu thứ hai trông như thế nào bên dưới, với First và Last tên, giống như trong khung dữ liệu đầu tiên, nhưng với một cột mới, Numeric. Sau đó, chúng tôi có các cột cụ thể mà chúng tôi muốn hợp nhất, đồng thời trả về các cột GenderBirthdate, và mới Numeric cột cũng vậy. Các cột là danh sách các cột, được đặt tên cols.



Hợp nhất khung dữ liệu. Ảnh chụp màn hình của tác giả [5].

 

Như bạn có thể thấy, cách hợp nhất các khung dữ liệu này là một cách đơn giản để đạt được kết quả tương tự như bạn sẽ nhận được từ một truy vấn SQL.

Tổng kết

 
 
Trong hướng dẫn này, chúng ta đã thấy hai câu hỏi hoặc truy vấn phổ biến mà bạn sẽ thực hiện trong SQL, nhưng thay vào đó, bạn lại thực hiện chúng với các khung dữ liệu gấu trúc trong Python.

Tóm lại, đây là hai kịch bản chúng tôi đã làm việc với:

  1. Trả về phần trăm hàng trong tổng số tập dữ liệu từ nhiều điều kiện
  2. Hợp nhất trên nhiều cột cụ thể để trả về khung dữ liệu cuối cùng với một cột mới

Tôi hy vọng bạn thấy bài viết của tôi thú vị và hữu ích. Vui lòng bình luận bên dưới nếu bạn đồng ý hoặc không đồng ý với những phương pháp này. Tại sao hoặc tại sao không? Những điều này chắc chắn có thể được làm rõ hơn nữa, nhưng tôi hy vọng tôi có thể làm sáng tỏ một số cách bạn có thể sử dụng pandas và Python thay vì SQL. Cảm ơn bạn đã đọc!

Vui lòng kiểm tra hồ sơ của tôi, Matt Przybyla, và các bài viết khác, cũng như liên hệ với tôi trên LinkedIn.

Tôi không liên kết với các công ty này.

 
dự án

[1] Ảnh của Bruce Hồng on Unsplash(2018)

[2] M. Przybyla, ảnh chụp màn hình dữ liệu mẫu, (2021)

[3] M. Przybyla, ảnh chụp màn hình mã điều kiện, (2021)

[4] M. Przybyla, ảnh chụp màn hình kết quả khung dữ liệu được hợp nhất, (2021)

[5] M. Przybyla, ảnh chụp màn hình khung dữ liệu hợp nhất, (2021)

 
Tiểu sử: Matthew Przybyla là Nhà khoa học dữ liệu cấp cao tại Favor Delivery, và là một nhà văn tự do về kỹ thuật, đặc biệt là trong lĩnh vực khoa học dữ liệu.

Nguyên. Đăng lại với sự cho phép.

Liên quan:

Nguồn: https://www.kdnuggets.com/2021/08/query-pandas-dataframe.html

Dấu thời gian:

Thêm từ Xe đẩy