Hướng dẫn how does python analyze data? - python phân tích dữ liệu như thế nào?

Show

Hướng dẫn từng bước để bắt đầu phân tích dữ liệu trong Python

Ảnh của Chris Liverani trên unplash

Vai trò của một nhà phân tích dữ liệu

Một nhà phân tích dữ liệu sử dụng các công cụ lập trình để khai thác một lượng lớn dữ liệu phức tạp và tìm thông tin liên quan từ dữ liệu này.

Nói tóm lại, một nhà phân tích là người có ý nghĩa từ dữ liệu lộn xộn. Một nhà phân tích dữ liệu cần có các kỹ năng trong các lĩnh vực sau, để hữu ích tại nơi làm việc:

  • Chuyên môn về miền - Để khai thác dữ liệu và đưa ra những hiểu biết có liên quan đến nơi làm việc của họ, một nhà phân tích cần phải có chuyên môn về miền. — In order to mine data and come up with insights that are relevant to their workplace, an analyst needs to have domain expertise.
  • Kỹ năng lập trình Một nhà phân tích dữ liệu, bạn sẽ cần biết các thư viện phù hợp để sử dụng để làm sạch dữ liệu, khai thác và hiểu rõ hơn về nó.—As a data analyst, you will need to know the right libraries to use in order to clean data, mine, and gain insights from it.
  • Thống kê - Một nhà phân tích có thể cần sử dụng một số công cụ thống kê để lấy ý nghĩa từ dữ liệu. — An analyst might need to use some statistical tools to derive meaning from data.
  • Kỹ năng trực quan - Một nhà phân tích dữ liệu cần có kỹ năng trực quan hóa dữ liệu tuyệt vời, để tóm tắt và trình bày dữ liệu cho bên thứ ba. — A data analyst needs to have great data visualization skills, in order to summarize and present data to a third party.
  • Kể chuyện - Cuối cùng, một nhà phân tích cần truyền đạt phát hiện của họ cho một bên liên quan hoặc khách hàng. Điều này có nghĩa là họ sẽ cần tạo một câu chuyện dữ liệu và có khả năng thuật lại nó.Finally, an analyst needs to communicate their findings to a stakeholder or client. This means that they will need to create a data story, and have the ability to narrate it.

Trong bài viết này, tôi sẽ hướng dẫn bạn qua quá trình phân tích dữ liệu từ đầu đến cuối với Python.

Nếu bạn làm theo hướng dẫn này và mã hóa mọi thứ theo cách tôi đã làm, thì bạn có thể sử dụng các mã và công cụ này cho các dự án phân tích dữ liệu trong tương lai.

Chúng tôi sẽ bắt đầu với việc tải xuống và làm sạch bộ dữ liệu, sau đó chuyển sang phân tích và trực quan hóa. Cuối cùng, chúng tôi sẽ kể một câu chuyện xung quanh kết quả dữ liệu của chúng tôi.

Tôi sẽ sử dụng một bộ dữ liệu từ Kaggle có tên là cơ sở dữ liệu bệnh tiểu đường Ấn Độ PIMA, bạn có thể tải xuống để thực hiện phân tích.

Pre-Requisites

Đối với toàn bộ phân tích này, tôi sẽ sử dụng máy tính xách tay Jupyter. Bạn có thể sử dụng bất kỳ ide python bạn thích.

Bạn sẽ cần cài đặt các thư viện trên đường đi và tôi sẽ cung cấp các liên kết sẽ hướng dẫn bạn trong quá trình cài đặt.

Phân tích

Ảnh của Luke Chesser trên unsplash

Sau khi tải xuống bộ dữ liệu, bạn sẽ cần đọc tệp .csv dưới dạng khung dữ liệu trong Python. Bạn có thể làm điều này bằng thư viện Pandas.

Nếu bạn chưa cài đặt nó, bạn có thể làm như vậy với một pip pip đơn giản trong thiết bị đầu cuối của bạn. Nếu bạn phải đối mặt với bất kỳ khó khăn nào với việc cài đặt hoặc đơn giản là muốn tìm hiểu thêm về thư viện Pandas, bạn có thể xem tài liệu của họ ở đây.

Đọc dữ liệu

Để đọc khung dữ liệu vào Python, bạn sẽ cần nhập gấu trúc trước. Sau đó, bạn có thể đọc tệp và tạo khung dữ liệu với các dòng mã sau:

import pandas as pd
df = pd.read_csv('diabetes.csv')

Để kiểm tra đầu của khung dữ liệu, hãy chạy:

df.head()
Image bởi tác giả

Từ ảnh chụp màn hình ở trên, bạn có thể thấy 9 biến khác nhau liên quan đến sức khỏe của bệnh nhân.

Là một nhà phân tích, bạn sẽ cần phải có một sự hiểu biết cơ bản về các biến này:

  • Mang thai: Số lần mang thai mà bệnh nhân có: The number of pregnancies the patient had
  • Glucose: Mức độ glucose của bệnh nhân: The patient’s glucose level
  • Huyết áp
  • Độ dày của da: Độ dày của bệnh nhân da ở mm: The thickness of the patient’s skin in mm
  • Insulin: Mức độ insulin của bệnh nhân: Insulin level of the patient
  • BMI: Chỉ số khối cơ thể của bệnh nhân: Body Mass Index of patient
  • Bệnh tiểu đường: Lịch sử đái tháo đường ở người thân: History of diabetes mellitus in relatives
  • Tuổi tác
  • Kết quả: Có hay không bệnh nhân mắc bệnh tiểu đường: Whether or not a patient has diabetes

Là một nhà phân tích, bạn sẽ cần biết sự khác biệt giữa các loại biến này - số và phân loại.

Các biến số là các biến là một thước đo và có một số loại ý nghĩa số. Tất cả các biến trong bộ dữ liệu này ngoại trừ kết quả của Cameron là số.are variables that are a measure, and have some kind of numeric meaning. All the variables in this dataset except for “outcome” are numeric.

Các biến phân loại còn được gọi là các biến danh nghĩa và có hai hoặc nhiều loại có thể được phân loại. are also called nominal variables, and have two or more categories that can be classified.

Biến kết quả của người khác là phân loại - 0 đại diện cho sự vắng mặt của bệnh tiểu đường và 1 đại diện cho sự hiện diện của bệnh tiểu đường.

Một lưu ý nhanh chóng

Trước khi tiếp tục phân tích, tôi muốn ghi chú nhanh:

Các nhà phân tích là con người và chúng ta thường đi kèm với các quan niệm định sẵn về những gì chúng ta mong đợi sẽ thấy trong dữ liệu.

Ví dụ, bạn sẽ mong đợi một người lớn tuổi có nhiều khả năng mắc bệnh tiểu đường. Bạn sẽ muốn thấy mối tương quan này trong dữ liệu, có thể không phải lúc nào cũng như vậy.

Giữ một tâm trí cởi mở trong quá trình phân tích và không để sự thiên vị của bạn ảnh hưởng đến việc ra quyết định.

Pandas hồ sơ

Đây là một công cụ rất hữu ích có thể được sử dụng bởi các nhà phân tích. Nó tạo ra một báo cáo phân tích trên khung dữ liệu và giúp bạn hiểu rõ hơn về mối tương quan giữa các biến.

Để tạo báo cáo hồ sơ gấu trúc, hãy chạy các dòng mã sau:

import pandas_profiling as pp
pp.ProfileReport(df)

Báo cáo này sẽ cung cấp cho bạn một số thông tin thống kê tổng thể trên bộ dữ liệu, trông như thế này:

Hình ảnh của tác giả

Bằng cách chỉ liếc vào số liệu thống kê dữ liệu, chúng ta có thể thấy rằng không có ô bị thiếu hoặc trùng lặp trong khung dữ liệu của chúng ta.

Thông tin được cung cấp ở trên thường yêu cầu chúng tôi chạy một vài dòng mã để tìm, nhưng được tạo ra dễ dàng hơn rất nhiều với hồ sơ gấu trúc.

Hồ sơ Pandas cũng cung cấp thêm thông tin về từng biến. Tôi sẽ cho bạn thấy một ví dụ:

Hình ảnh của tác giả

Bằng cách chỉ liếc vào số liệu thống kê dữ liệu, chúng ta có thể thấy rằng không có ô bị thiếu hoặc trùng lặp trong khung dữ liệu của chúng ta.

Thông tin được cung cấp ở trên thường yêu cầu chúng tôi chạy một vài dòng mã để tìm, nhưng được tạo ra dễ dàng hơn rất nhiều với hồ sơ gấu trúc.this report saves a lot of time, as we don’t have to go through each individual variable and run too many lines of code.

Hồ sơ Pandas cũng cung cấp thêm thông tin về từng biến. Tôi sẽ cho bạn thấy một ví dụ:

  • Đây là thông tin được tạo ra cho biến có tên là mang thai.
  • Là một nhà phân tích, báo cáo này tiết kiệm rất nhiều thời gian, vì chúng tôi không phải đi qua từng biến riêng lẻ và chạy quá nhiều dòng mã.
  • Từ đây, chúng ta có thể thấy rằng:above 80% of the patients in the dataset are pregnant.

Biến đổi mang thai trên mạng có 17 giá trị riêng biệt.

Hình ảnh của tác giả

Bằng cách chỉ liếc vào số liệu thống kê dữ liệu, chúng ta có thể thấy rằng không có ô bị thiếu hoặc trùng lặp trong khung dữ liệu của chúng ta.better understanding of the correlation between the variables in the dataset.

Thông tin được cung cấp ở trên thường yêu cầu chúng tôi chạy một vài dòng mã để tìm, nhưng được tạo ra dễ dàng hơn rất nhiều với hồ sơ gấu trúc.

Hồ sơ Pandas cũng cung cấp thêm thông tin về từng biến. Tôi sẽ cho bạn thấy một ví dụ:no missing or duplicate rows in the data frame as seen above, we don’t need to do any additional data cleaning.

Đây là thông tin được tạo ra cho biến có tên là mang thai.

Là một nhà phân tích, báo cáo này tiết kiệm rất nhiều thời gian, vì chúng tôi không phải đi qua từng biến riêng lẻ và chạy quá nhiều dòng mã.

Từ đây, chúng ta có thể thấy rằng:

Biến đổi mang thai trên mạng có 17 giá trị riêng biệt.

Số lượng mang thai tối thiểu mà một người có là 0 và tối đa là 17.

Số lượng giá trị bằng không trong cột này khá thấp (chỉ 14,5%). Điều này có nghĩa là trên 80% bệnh nhân trong bộ dữ liệu đang mang thai.

Trong báo cáo, có thông tin như thế này được cung cấp cho từng biến. Điều này giúp chúng tôi rất nhiều trong sự hiểu biết của chúng tôi về bộ dữ liệu và tất cả các cột trong đó.

Biểu đồ trên là một ma trận tương quan. Nó giúp chúng ta hiểu rõ hơn về mối tương quan giữa các biến trong tập dữ liệu.

Có một mối tương quan tích cực nhỏ giữa các biến số tuổi và độ dày của da, có thể được xem xét sâu hơn trong phần trực quan hóa của phân tích.

Vì không có hàng bị thiếu hoặc sao chép trong khung dữ liệu như đã thấy ở trên, chúng tôi không cần phải làm thêm bất kỳ việc làm sạch dữ liệu nào.

# Visualization Importsimport matplotlib.pyplot as plt
import seaborn as sns
color = sns.color_palette()
get_ipython().run_line_magic('matplotlib', 'inline')
import plotly.offline as py
py.init_notebook_mode(connected=True)
import plotly.graph_objs as go
import plotly.tools as tls
import plotly.express as px
import numpy as np

Tiếp theo, chạy các dòng mã sau để tạo biểu đồ hình tròn trực quan hóa biến kết quả:

dist = df['Outcome'].value_counts()
colors = ['mediumturquoise', 'darkorange']
trace = go.Pie(values=(np.array(dist)),labels=dist.index)
layout = go.Layout(title='Diabetes Outcome')
data = [trace]
fig = go.Figure(trace,layout)
fig.update_traces(marker=dict(colors=colors, line=dict(color='#000000', width=2)))
fig.show()

Điều này được thực hiện với thư viện âm mưu và bạn sẽ nhận được một biểu đồ tương tác trông như thế này:

Hình ảnh của tác giả

Bạn có thể chơi xung quanh với biểu đồ và chọn thay đổi màu sắc, nhãn hiệu và huyền thoại.

Tuy nhiên, từ biểu đồ trên, chúng ta có thể thấy rằng hầu hết các bệnh nhân trong bộ dữ liệu không bị tiểu đường. Ít hơn một nửa trong số họ có kết quả là 1 (mắc bệnh tiểu đường).

Ma trận tương quan với cốt truyện

Tương tự như ma trận tương quan được tạo ra trong hồ sơ Pandas, chúng ta có thể tạo một bản bằng cách sử dụng Plotly:

def df_to_plotly(df):
return {'z': df.values.tolist(),
'x': df.columns.tolist(),
'y': df.index.tolist() }
import plotly.graph_objects as go
dfNew = df.corr()
fig = go.Figure(data=go.Heatmap(df_to_plotly(dfNew)))
fig.show()

Các mã ở trên sẽ tạo ra một ma trận tương quan tương tự như mã trên:

Hình ảnh của tác giả

Bạn có thể chơi xung quanh với biểu đồ và chọn thay đổi màu sắc, nhãn hiệu và huyền thoại.

  • Tuy nhiên, từ biểu đồ trên, chúng ta có thể thấy rằng hầu hết các bệnh nhân trong bộ dữ liệu không bị tiểu đường. Ít hơn một nửa trong số họ có kết quả là 1 (mắc bệnh tiểu đường).
  • Ma trận tương quan với cốt truyện
  • Tương tự như ma trận tương quan được tạo ra trong hồ sơ Pandas, chúng ta có thể tạo một bản bằng cách sử dụng Plotly:

Các mã ở trên sẽ tạo ra một ma trận tương quan tương tự như mã trên:

Một lần nữa, tương tự như ma trận được tạo ra ở trên, một mối tương quan tích cực có thể được quan sát giữa các biến:

fig = px.scatter(df, x='Glucose', y='Insulin')
fig.update_traces(marker_color="turquoise",marker_line_color='rgb(8,48,107)',
marker_line_width=1.5)
fig.update_layout(title_text='Glucose and Insulin')
fig.show()

Tuổi và mang thai

Hình ảnh của tác giả

Bạn có thể chơi xung quanh với biểu đồ và chọn thay đổi màu sắc, nhãn hiệu và huyền thoại.

Tuy nhiên, từ biểu đồ trên, chúng ta có thể thấy rằng hầu hết các bệnh nhân trong bộ dữ liệu không bị tiểu đường. Ít hơn một nửa trong số họ có kết quả là 1 (mắc bệnh tiểu đường).

Ma trận tương quan với cốt truyện

fig = px.box(df, x='Outcome', y='Age')
fig.update_traces(marker_color="midnightblue",marker_line_color='rgb(8,48,107)',
marker_line_width=1.5)
fig.update_layout(title_text='Age and Outcome')
fig.show()

Tương tự như ma trận tương quan được tạo ra trong hồ sơ Pandas, chúng ta có thể tạo một bản bằng cách sử dụng Plotly:

Hình ảnh của tác giả

Bạn có thể chơi xung quanh với biểu đồ và chọn thay đổi màu sắc, nhãn hiệu và huyền thoại.

Tuy nhiên, từ biểu đồ trên, chúng ta có thể thấy rằng hầu hết các bệnh nhân trong bộ dữ liệu không bị tiểu đường. Ít hơn một nửa trong số họ có kết quả là 1 (mắc bệnh tiểu đường).

Ma trận tương quan với cốt truyện

Tương tự như ma trận tương quan được tạo ra trong hồ sơ Pandas, chúng ta có thể tạo một bản bằng cách sử dụng Plotly:

Các mã ở trên sẽ tạo ra một ma trận tương quan tương tự như mã trên:

Một lần nữa, tương tự như ma trận được tạo ra ở trên, một mối tương quan tích cực có thể được quan sát giữa các biến:

Tuổi và mang thai

Glucose và kết quả

Skinthickness và insulin

Bạn có thể thực hiện nhiều trực quan hơn như các hình ảnh trên, bằng cách thay đổi tên biến và chạy cùng một dòng mã.

Tôi sẽ để lại điều đó như một bài tập để bạn làm, để nắm bắt tốt hơn về kỹ năng trực quan của bạn với Python.

Kể chuyện dữ liệu

Ảnh của Blaz trên unplash

Cuối cùng, chúng ta có thể kể một câu chuyện xung quanh dữ liệu chúng ta đã phân tích và hình dung. Phát hiện của chúng tôi có thể bị phá vỡ như sau:

Những người mắc bệnh tiểu đường rất có khả năng già hơn những người không ủng hộ. Họ cũng có nhiều khả năng có BMI, hoặc bị béo phì cao hơn. Họ cũng có nhiều khả năng có nồng độ glucose cao hơn trong máu. Những người có nồng độ glucose cao hơn cũng có xu hướng dùng nhiều insulin hơn và mối tương quan tích cực này cho thấy bệnh nhân mắc bệnh tiểu đường cũng có thể có nồng độ insulin cao hơn (mối tương quan này có thể được kiểm tra bằng cách tạo ra một biểu đồ phân tán).

Đó là tất cả cho bài viết này! Tôi hy vọng bạn tìm thấy hướng dẫn này hữu ích và có thể sử dụng nó như một tài liệu tham khảo trong tương lai cho các dự án bạn cần tạo. Chúc may mắn trong hành trình khoa học dữ liệu của bạn, và học hỏi hạnh phúc!

Tìm hiểu mọi thứ bạn có thể, bất cứ lúc nào bạn có thể, từ bất kỳ ai bạn có thể; Sẽ luôn luôn đến một lúc bạn sẽ biết ơn bạn đã làm - Sarah Caldwell.

Phân tích dữ liệu được thực hiện như thế nào trong Python?

Phân tích dữ liệu sử dụng thư viện Python, gấu trúc và matplotlib..
Nhập thư viện ..
Tải dữ liệu bằng hàm pandas read_csv () ..
Hiển thị đầu của bộ dữ liệu bằng hàm đầu () ..
Hiển thị 5 hàng dưới cùng từ bộ dữ liệu bằng hàm đuôi () ..

Tại sao Python rất tốt để phân tích dữ liệu?

Nhờ sự tập trung của Python vào sự đơn giản và dễ đọc, nó tự hào có một đường cong học tập dần dần và tương đối thấp.Sự dễ học này làm cho Python trở thành một công cụ lý tưởng để bắt đầu lập trình viên.Python cung cấp cho các lập trình viên lợi thế của việc sử dụng ít dòng mã hơn để thực hiện các tác vụ hơn một nhu cầu khi sử dụng các ngôn ngữ cũ.. This ease of learning makes Python an ideal tool for beginning programmers. Python offers programmers the advantage of using fewer lines of code to accomplish tasks than one needs when using older languages.

Python sử dụng công cụ nào để phân tích dữ liệu?

Top 10 thư viện Python cho khoa học dữ liệu..
TensorFlow..
NumPy..
SciPy..
Pandas..
Matplotlib..
Keras..
SciKit-Learn..
PyTorch..

Python có phân tích thống kê không?

Thống kê của Python là một thư viện Python tích hợp cho các số liệu thống kê mô tả.Bạn có thể sử dụng nó nếu bộ dữ liệu của bạn không quá lớn hoặc nếu bạn không thể dựa vào việc nhập các thư viện khác.Numpy là một thư viện của bên thứ ba để tính toán số, được tối ưu hóa để làm việc với các mảng đơn và đa chiều.. You can use it if your datasets are not too large or if you can't rely on importing other libraries. NumPy is a third-party library for numerical computing, optimized for working with single- and multi-dimensional arrays.