Hướng dẫn dùng name pandas python
Chào các member Mì AI, chúng ta lại cùng đi tiếp series về DA-DS nhé. Trong bài trước (tại đây) chúng ta đã tìm hiểu, cài đặt Python và viết một ứng dụng nhỏ để đọc file CSV rồi. Trong bài này chúng ta sẽ cùng thảo luận một số thao tác cơ bản với dữ liệu bằng thư viện Pandas nhé! Mình cũng xin nhắc lại là Mì Ai cũng xin tiếp cận DA theo một cách hoàn toàn là Mì ăn liền cho hợp phong cách. Các khái niệm sẽ đều được đơn giản hóa để các bạn mới bắt đầu cũng có thể tham khảo và sử dụng được. Mong các cao thủ đi qua xin bỏ quá! Phần 1 – Khái niệm về Pandas, Series và DataFrameVề thư viện PandasNhư đã nói trong buổi trước, cứ nhắc đến DA là có 2 thư viện dùng rõ nhiều là : pandas và numpy. Để các bạn dễ hiểu thì cứ nhớ là :
Để làm việc với 2 thằng này cho tiện thì cứ mở project mới là các bạn cài cắm nó luôn bằng lệnh:
Về khái niệm Series và DataframeNếu hiểu một cách đơn giản thì Series là các cột trong Excel còn Dataframe chính là một tập hợp các cột và chính là Sheet trong Excels đó. Còn nếu bạn nào đã làm quen với CSDL thì Series là cột còn Dataframe chính là table. Nghe bắt đầu quen thuộc rồi đúng không? Tuy nhiên có một đặc khác chút cần lưu ý như sau:
Dataframe sẽ hay được biểu diễn bằng biến có tên “df” cho dễ gợi nhớ nhé (còn thực ra bạn thích đặt tên gì cho nó cũng được như : vàng, bạc, kim cương hay mì ăn liền…). Rồi, hiểu mì ăn liền là vậy còn nếu các bạn muốn đọc chuyên sâu hơn thì mình có link sẵn full HD không che nhé: Tại đây Phần 2 – Giới thiệu một số lệnh thao tác chính trên Dataframe với thư viện PandasỞ đây mình cũng nói luôn là thư viện Pandas là khá lớn với vô số các lệnh và riêng việc liệt kê ra thôi cũng đã hết mấy trang A4 kaka. Do đó trong bài này mình chỉ giới thiệu một số lệnh chính để các bạn hình dung cách làm việc với thư viện Pandas như thế nào thôi, các bạn muốn tìm hiểu thêm thì có thể đọc tại link chính thức của Pandas luôn cho máu. Tạo dataframeDataframe có thể tạo ra bằng nhiều cách khác nhau. Đầu tiên ta có thể tạo df từ một mảng dữ liệu nhập ngay trên phần mềm (cách này thông thường mình cũng không sử dụng vì có xu hướng làm việc với các tệp dữ liệu lớn). Cách tạo ra df bằng cách tạo các mảng dữ liệu cho các cột, từ đó gắn cột vào df. Ví dụ mã nguồn như sau:
Kết quả của df1 và df2 sẽ có dạng như sau:
Cách thứ hai các bạn có thể load dữ liệu từ file excel, csv vào trong dataframe. Thông thường mình hay dùng file csv để giảm dung lượng dữ liệu đầu vào. Trong bài trước mình đã có hướng dẫn cụ thể về việc này thông qua việc dùng lệnh đọc file dữ liệu như sau:
Ngoài ra Python cũng hỗ trợ việc kết nối đến CSDL để lấy thông tin, tùy thuộc loại CSDL để có thể tìm các code tương ứng nhé! Chúng ta đã xong phần tạo df, bây giờ mình sẽ đi tiếp các lệnh khác của pandas trên df. Để các bạn dễ hiểu mình sẽ nhóm vào theo các nhóm đúng theo tư tưởng của SQL nhé kaka! Các câu lệnh SELECTTrong phần này các bạn sẽ dùng các lệnh để in ra dữ liệu trong df (hoặc gán cho biến nào đó khác một phần dữ liệu trích xuất ra của df). Lệnh in df ra màn hình
Đoạn chương trình trên bạn chú ý 2 lệnh là head và tail. Đúng với cái tên của nó, dùng để in ra các bản ghi đầu tiên và cuối cùng (đuôi) của df. Xem dữ liệu của một cột Để xem dữ liệu một cột ta sử dụng df [‘
Xem dữ liệu của một dòng Để xem dữ liệu của một dòng ta sẽ xem theo index của df. Ví dụ ta có một df như sau: Bây giờ giả sử muốn lấy các dòng bằng lệnh như sau:
Nếu cột index không phải là số mà là các loại dữ liệu khác thì ta dùng lệnh df.loc. Gỉa sử ta có một df như sau: Kiểm tra dữ liệu một cột Đôi khi chúng ta muốn tìm hiểu xem dữ liệu của một cột là gì? Phân phối như thế nào? Min, max ra sao… thì chúng ta dùng lệnh describe như sau:
Dữ liệu trả về sẽ có dạng một bảng gồm các thông tin và ý nghĩa của các thông tin đó mình có giải thích ở bảng bên dưới. Nếu muốn tìm hiểu kỹ hơn về các giá trị thống kê, các bạn có thể vào link này nhé. Lọc dữ liệu trong dataframe Các bạn cứ hình dùng phần lọc dữ liệu này như là câu SELECT kèm WHERE ấy. Giả sử ta có một dataframe như sau:
Sắp xếp dữ liệu Để sắp xếp dữ liệu ta dùng lệnh sort_values() như sau:
Các câu lệnh UPDATEUpdate giá trị cột Gọi là update nhưng thực chất là chúng ta thay đổi giá trị của các cột theo nhu cầu bài toán yêu cầu thôi. Chúng ta có thể thực hiện các thao tác sau: 0 Thay đổi index của df Với món này chúng ta có thể thực hiện các thao tác: 1 Xử lý missing data Trong quá trình làm việc với dữ liệu hàng ngày chúng ta sẽ gặp rất nhiều dữ liệu bị thiếu (trống, NaN…) và chúng ta phải xử lý nó trước khi có thể tiếp tục làm việc với dữ liệu. Có 2 cách chính để xử lý cái missing data này là: cắt luôn (Drop) hoặc thay thế (Replace) Giả sử ta có df như sau: Bây giờ ta có thể thực hiện drop các missing data bằng lệnh dropna như sau: 2 Hoặc cũng có thể replace các NaN values như sau: 3 Các câu lệnh DELETEĐể xóa dòng hay cột trong pandas ta đều dùng chung một lệnh là drop như sau: 4 Các câu lệnh INSERTThêm dòng dữ liệu mới Đê thêm dòng dữ liệu mới vào Dataframe ta dùng lệnh append cho dataframe. Ví dụ: 5 Thêm một cột dữ liệu mới Việc thêm một cột dữ liệu mới trong dataframe khá đơn giản, các bạn hầu như không cần làm gì mà thực hiện theo kiểu “cứ thế mà gán”. Ví dụ mình có 1 df như sau: Bây giờ giả sử muốn thêm cột,ta sẽ thực hiện như sau: 6 Các câu lệnh truy xuất dữ liệu phức tạp hơnNhóm dữ liệu Để nhóm dữ liệu ta dùng lệnh groupby. Giả sử ta có dataframe sau: Bây giờ ta có thể group theo nhóm như sau: 7 Pivot table Cái này mình cũng chưa biết chuyển sang tiếng Việt như nào cho hợp lý. Đại khái là nó tạo ra 1 góc nhìn khác từ một bảng dữ liệu. Ví dụ ta có dataframe: Giả sử ta muốn lấy lại thông tin theo tên người làm index, ta sử dụng lệnh: 8 9 Rồi, trên đây là các thao tác chính với dataframe, mình đã liệt kê chỉ với mục đích các bạn có cái nhìn tổng quát về những gì ta có thể làm với dữ liệu. Để tìm hiểu chi tiết các bạn có thể tham khảo tài liệu của pandas và cũng nên hỏi chị Gúc gờ mọi lúc mọi nơi khi cần thiết nhé. Học lập trình chứ không phải học thuộc lòng ngôn ngữ nên các bạn cũng không cần thiết phải cố mà nhớ cho mệt. Trong các bài tiếp theo chúng ta sẽ học cách vẽ các loại đồ thị với pandas và matplotlib nhé. Hẹn gặp lại các bạn! |