Giới thiệu thân thiện về phân tích dữ liệu trong Python

Trong những năm qua, việc sử dụng trăn cho khoa học dữ liệu đã phát triển đáng kinh ngạc và tiếp tục phát triển hàng ngày.


Khoa học dữ liệu là một lĩnh vực nghiên cứu rộng lớn với rất nhiều lĩnh vực phụ, trong đó phân tích dữ liệu là một trong những lĩnh vực quan trọng nhất trong tất cả các lĩnh vực này, và bất kể trình độ kỹ năng của một người trong khoa học dữ liệu, nó ngày càng trở nên quan trọng để hiểu hoặc có ít nhất một kiến ​​thức cơ bản về nó.

Phân tích dữ liệu là gì?

Phân tích dữ liệu là việc làm sạch và chuyển đổi một lượng lớn dữ liệu không có cấu trúc hoặc không có tổ chức, với mục tiêu tạo ra những hiểu biết và thông tin chính về dữ liệu này sẽ giúp đưa ra quyết định sáng suốt.

Có nhiều công cụ khác nhau được sử dụng để phân tích dữ liệu, Python, Microsoft Excel, Tableau, SaS, v.v. nhưng trong bài viết này, chúng tôi sẽ tập trung vào cách phân tích dữ liệu được thực hiện trong python. Cụ thể hơn, cách thức mà Google thực hiện với một thư viện python được gọi là Gấu trúc.

Gấu trúc là gì?

Pandas là một thư viện Python mã nguồn mở được sử dụng để thao tác và sắp xếp dữ liệu. Nó nhanh và hiệu quả cao và có các công cụ để tải nhiều loại dữ liệu vào bộ nhớ. Nó có thể được sử dụng để định hình lại, cắt nhãn, lập chỉ mục hoặc thậm chí nhóm một số dạng dữ liệu.

Cấu trúc dữ liệu trong Pandas

Có 3 cấu trúc dữ liệu trong Pandas, cụ thể là;

  • Loạt
  • Khung dữ liệu
  • Bảng điều khiển

Cách tốt nhất để phân biệt ba người trong số họ là xem một cái có chứa một số ngăn xếp khác. Vì vậy, DataFrame là một chuỗi các chuỗi và Bảng điều khiển là một chồng DataFrames.

Một chuỗi là một mảng một chiều

Một chuỗi nhiều chuỗi tạo ra DataFrame 2 chiều

Một chồng một số DataFrames tạo thành Bảng điều khiển 3 chiều

Cấu trúc dữ liệu mà chúng tôi sẽ làm việc nhiều nhất là DataFrame 2 chiều cũng có thể là phương tiện biểu diễn mặc định cho một số bộ dữ liệu mà chúng tôi có thể gặp.

Phân tích dữ liệu trong Pandas

Đối với bài viết này, không cần cài đặt. Chúng tôi sẽ sử dụng một công cụ gọi là học tập được tạo bởi Google. Nó là một môi trường python trực tuyến để phân tích dữ liệu, học máy và AI. Nó chỉ đơn giản là một Notebook Jupyter dựa trên đám mây được cài đặt sẵn với hầu hết mọi gói python mà bạn sẽ cần như một nhà khoa học dữ liệu.

Bây giờ, đi đến https://colab.research.google.com/notebooks/intro.ipynb. Bạn nên xem dưới đây.

Bằng cách điều hướng trên cùng bên trái, nhấp vào tùy chọn tệp và nhấp vào tùy chọn Sổ tay mới của Wap. Bạn sẽ thấy một trang sổ tay Jupyter mới được tải trong trình duyệt của bạn. Điều đầu tiên chúng ta cần làm là nhập gấu trúc vào môi trường làm việc của chúng ta. Chúng ta có thể làm điều đó bằng cách chạy mã sau đây;

gấu trúc nhập khẩu như pd

Đối với bài viết này, chúng tôi sẽ sử dụng bộ dữ liệu giá nhà đất để phân tích dữ liệu của chúng tôi. Bộ dữ liệu chúng tôi sẽ sử dụng có thể được tìm thấy đây. Điều đầu tiên chúng tôi muốn làm là tải tập dữ liệu này vào môi trường của chúng tôi.

Chúng ta có thể làm điều đó với đoạn mã sau trong một ô mới;

df = pd.read_csv (‘https: // firebasest Storage.googleapis.com/v0/b/ai6-port portfolio-aeokuta.appspot.com/o/kc_house_data.csv?alt=media &mã thông báo = 6a5ab32c-3cac-42b3-b534-4dbd0e4bdbc0 ‘, sep =’, ‘)

.Rar_csv được sử dụng khi chúng tôi muốn đọc tệp CSV và chúng tôi đã chuyển một thuộc tính sep để hiển thị rằng tệp CSV được phân cách bằng dấu phẩy.

Chúng tôi cũng cần lưu ý rằng tệp CSV đã tải của chúng tôi được lưu trữ trong một biến df .

Chúng tôi không cần sử dụng hàm print () trong Jupyter Notebook. Chúng ta chỉ cần gõ một tên biến trong ô của mình và Jupyter Notebook sẽ in ra cho chúng ta.

Chúng tôi có thể thử điều đó bằng cách nhập df vào một ô mới và chạy nó, nó sẽ in ra tất cả dữ liệu trong tập dữ liệu của chúng tôi dưới dạng DataFrame cho chúng tôi.

Nhưng chúng tôi không muốn xem tất cả dữ liệu, đôi khi chúng tôi chỉ muốn xem một vài dữ liệu đầu tiên và tên cột của chúng. Chúng ta có thể sử dụng hàm df.head () để in năm cột đầu tiên và df.tail () để in năm cột cuối cùng. Đầu ra của một trong hai sẽ trông như vậy;

Chúng tôi muốn kiểm tra mối quan hệ giữa một số hàng và cột dữ liệu. Hàm .describe () thực hiện chính xác điều này cho chúng ta.

 Chạy df.describe () cho đầu ra sau;

Chúng ta có thể thấy ngay rằng .describe () đưa ra giá trị trung bình, độ lệch chuẩn, giá trị tối thiểu và tối đa và phần trăm của mỗi và mỗi cột trong DataFrame. Điều này rất hữu ích đặc biệt.

Chúng tôi cũng có thể kiểm tra hình dạng của Khung dữ liệu 2D của chúng tôi để tìm hiểu xem nó có bao nhiêu hàng và cột. Chúng ta có thể làm điều đó bằng cách sử dụng df.shape trả về một tuple ở định dạng (hàng, cột).

Chúng tôi cũng có thể kiểm tra tên của tất cả các cột trong DataFrame bằng cách sử dụng df.columns.

Điều gì xảy ra nếu chúng ta muốn chọn chỉ một cột và trả lại tất cả dữ liệu trong đó? Điều này được thực hiện là một cách tương tự như cắt qua từ điển. Nhập mã sau vào một ô mới và chạy nó

df [‘giá’]

Đoạn mã trên trả về cột giá, chúng ta có thể đi xa hơn bằng cách lưu nó vào một biến mới như vậy

price = df [‘price’]

Bây giờ chúng tôi có thể thực hiện mọi hành động khác có thể được thực hiện trên DataFrame trên biến giá của chúng tôi vì nó chỉ là tập hợp con của DataFrame thực tế. Chúng ta có thể làm những thứ như df.head (), df.shape, v.v…

Chúng tôi cũng có thể chọn nhiều cột bằng cách chuyển danh sách tên cột vào df như vậy

data = df [[‘price’, ‘phòng ngủ’]]

Ở trên chọn các cột có tên ‘price, và phòng ngủ, nếu chúng ta nhập data.head () vào một ô mới, chúng ta sẽ có các mục sau

Cách cắt cột trên trả về tất cả các thành phần hàng trong cột đó, nếu chúng ta muốn trả về một tập hợp con của các hàng và một tập hợp các cột từ tập dữ liệu của chúng ta thì sao? Điều này có thể được thực hiện bằng cách sử dụng .iloc và được lập chỉ mục theo cách tương tự như Danh sách python. Vì vậy, chúng ta có thể làm một cái gì đó như

df.iloc [50 :, 3]

Trả về cột thứ 3 từ hàng thứ 50 cho đến hết. Nó rất gọn gàng và giống như danh sách cắt lát trong python.

Bây giờ hãy để một số thứ thực sự thú vị, bộ dữ liệu giá nhà đất của chúng tôi có một cột cho chúng tôi biết giá của một ngôi nhà và một cột khác cho chúng tôi biết số phòng ngủ mà ngôi nhà cụ thể có. Giá nhà đất là một giá trị liên tục, vì vậy, có thể chúng tôi không có hai ngôi nhà có cùng giá. Nhưng số lượng phòng ngủ có phần rời rạc, vì vậy chúng tôi có thể có một vài ngôi nhà với hai, ba, bốn phòng ngủ, v.v..

Điều gì sẽ xảy ra nếu chúng ta muốn có được tất cả các ngôi nhà có cùng số phòng ngủ và tìm giá trung bình của mỗi phòng ngủ riêng biệt? Nó tương đối dễ dàng để làm điều đó trong gấu trúc, nó có thể được thực hiện như vậy;

df.groupby (‘phòng ngủ’) [‘price’] .mean ()

Các nhóm đầu tiên ở trên nhóm DataFrame theo các bộ dữ liệu có số phòng ngủ giống hệt nhau bằng cách sử dụng hàm df.groupby (), sau đó chúng tôi bảo nó chỉ cung cấp cho chúng tôi cột phòng ngủ và sử dụng hàm .mean () để tìm giá trị trung bình của mỗi ngôi nhà trong bộ dữ liệu.

Nếu chúng ta muốn hình dung những điều trên thì sao? Chúng tôi muốn có thể kiểm tra giá trung bình của mỗi số phòng ngủ khác nhau khác nhau như thế nào? Chúng ta chỉ cần xâu chuỗi mã trước đó thành hàm .plot () như vậy;

df.groupby (‘phòng ngủ’) [‘price’] .mean (). lô ()

Chúng tôi sẽ có một đầu ra trông như vậy;

Trên đây cho chúng ta thấy một số xu hướng trong dữ liệu. Trên trục hoành, chúng ta có một số phòng ngủ riêng biệt (Lưu ý rằng nhiều hơn một ngôi nhà có thể có số phòng ngủ X), Trên trục tung, chúng ta có giá trị trung bình của số phòng ngủ tương ứng theo chiều ngang trục. Bây giờ chúng ta có thể nhận thấy ngay rằng những ngôi nhà có từ 5 đến 10 phòng ngủ có giá cao hơn rất nhiều so với những ngôi nhà có 3 phòng ngủ. Nó cũng trở nên rõ ràng rằng những ngôi nhà có khoảng 7 hoặc 8 phòng ngủ có giá cao hơn nhiều so với những ngôi nhà có 15, 20 hoặc thậm chí 30 phòng.

Thông tin như trên là lý do tại sao phân tích dữ liệu rất quan trọng, chúng tôi có thể trích xuất thông tin chi tiết hữu ích từ dữ liệu ngay lập tức hoặc không thể nhận thấy mà không cần phân tích.

Dữ liệu bị mất

Hãy giả sử tôi giả sử tôi tham gia một cuộc khảo sát bao gồm một loạt các câu hỏi. Tôi chia sẻ một liên kết đến cuộc khảo sát với hàng ngàn người để họ có thể đưa ra phản hồi của họ. Mục tiêu cuối cùng của tôi là chạy phân tích dữ liệu trên dữ liệu này để tôi có thể nhận được một số thông tin chi tiết chính từ dữ liệu.

Bây giờ rất nhiều điều có thể sai, một số nhà khảo sát có thể cảm thấy không thoải mái khi trả lời một số câu hỏi của tôi và để trống. Rất nhiều người có thể làm tương tự cho một số câu hỏi khảo sát của tôi. Điều này có thể không được coi là một vấn đề nhưng hãy tưởng tượng nếu tôi đang thu thập dữ liệu số trong khảo sát của mình và một phần của phân tích yêu cầu tôi phải lấy tổng, giá trị trung bình hoặc một số phép toán số học khác. Một số giá trị bị thiếu sẽ dẫn đến nhiều điểm không chính xác trong phân tích của tôi, tôi phải tìm ra cách để tìm và thay thế giá trị bị thiếu này bằng một số giá trị có thể thay thế gần với chúng.

Gấu trúc cung cấp cho chúng ta một hàm để tìm các giá trị bị thiếu trong DataFrame được gọi là isnull ().

Hàm isnull () có thể được sử dụng như vậy;

df.isnull ()

Điều này trả về một DataFrame của booleans cho chúng ta biết nếu dữ liệu ban đầu có bị thiếu thực sự hoặc bị thiếu. Đầu ra sẽ trông như vậy;


Chúng ta cần một cách để có thể thay thế tất cả các giá trị bị thiếu này, thường thì sự lựa chọn của các giá trị bị thiếu có thể được lấy bằng không. Đôi khi, nó có thể được coi là giá trị trung bình của tất cả các dữ liệu khác hoặc có thể là giá trị trung bình của dữ liệu xung quanh nó, tùy thuộc vào nhà khoa học dữ liệu và trường hợp sử dụng của dữ liệu được phân tích.

Để điền vào tất cả các giá trị còn thiếu trong DataFrame, chúng tôi sử dụng hàm .fillna () được sử dụng như vậy;

df.fillna (0)

Trong phần trên, chúng tôi đã điền tất cả dữ liệu trống với giá trị 0. Nó cũng có thể là bất kỳ số nào khác mà chúng tôi chỉ định nó là.

Tầm quan trọng của dữ liệu không thể được nhấn mạnh quá mức, nó giúp chúng ta có câu trả lời ngay từ chính dữ liệu của mình!. Phân tích dữ liệu mà họ nói là Dầu mới cho các nền kinh tế kỹ thuật số.

Tất cả các ví dụ trong bài viết này có thể được tìm thấy đây.

Để tìm hiểu sâu hơn, hãy xem Phân tích dữ liệu với khóa học trực tuyến Python và Pandas.

THẺ

  • Con trăn

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map