+17

Một số package mà bạn nên thử để trực quan hóa dữ liệu

Xin chào mọi người, chúc mừng năm mới mọi người, chúc mọi người năm mới mạnh khỏe, an khang thịnh vượng.

Dữ liệu chứa rất nhiều thông tin chi tiết có ý nghĩa. Phân tích dữ liệu là cách để có được những thông tin chi tiết đó. Đôi khi, chúng ta bối rối trong việc lựa chọn công cụ nào chúng ta muốn sử dụng. Hoặc chúng ta có thể sử dụng một ngôn ngữ lập trình như Python hoặc một số bạn không biết code python vẫn muốn dùng python để phân tích dữ liệu, ... . Ở bài viết này mình sẽ chia sẻ cho mọi người một số package trực quan hóa dữ liệu mình vừa thử sử dụng,mình khá thích tìm hiểu về mấy cái thư viện kiểu này và bên cạnh đó mình thấy nó khá là hữu ích và tiện lợi cho việc phân tích cũng như trực quan hóa dữ liệu. Mình sẽ chia sẻ các Package:

  • Lux
  • Pandas Profiling
  • Mito

Lux

Lux là một thư viện Python hỗ trợ việc khám phá dữ liệu nhanh chóng và dễ dàng bằng cách tự động hóa quá trình trực quan hóa và phân tích dữ liệu. Chỉ cần in dữ liệu trong Jupyter, Lux đề xuất một tập hợp các hình ảnh trực quan - cực kì hữu ích và tiện lợi đúng không 😄. Tất cả những gì mình cẩn phải làm là nhấp vào hình ảnh mình mong muốn vậy là đã hoàn tất - không cần phải viết code gì luôn á :v ! Lux là lựa chọn tuyệt vời cho những ai muốn trực quan hóa dữ liệu mình có nhanh hơn bằng Python.( nhanh hơn cả pandas_profiling mình đã từng viết bài ở đây luôn). Ok chúng ta cùng thử xem nhé. Dữ liệu các bạn xem tại đây nhé

Đầu tiên chúng ta phải cài đặt đã

!pip install lux-api
import lux
import pandas as pd

cùng đọc dữ liệu bằng pandas và thử xem nhé.

 df = pd.read_csv("https://raw.githubusercontent.com/lux-org/lux-datasets/master/data/college.csv")

Để có thể lựa chọn pandas hay lux thì chúng ta phải tiến hành cài đặt extension cho jupyter-notebook đã nha.

jupyter nbextension install --py luxwidget
jupyter nbextension enable --py luxwidget

Còn nếu bạn dùng jupyter-lab thì cài đặt như sau:

jupyter labextension install @jupyter-widgets/jupyterlab-manager
jupyter labextension install luxwidget

Nếu bạn bị lỗi gì đó thì thử làm theo cái này nhé.

Cài extension xong rồi thì cùng xem kết quả nào.

Hình: kết quả

Nhìn vào ảnh gif trên thì mọi thứ đã có sẵn đúng không nào 😄. Các bạn thử cài đặt và làm theo nhé ^^.

Đối với Lux ngoài việc thư viện đưa ra tất cả những hình ảnh liên quan thì bạn có thể lựa chọn những biến hay những giá trị mà bạn quan tâm để đáp ứng đúng nhu cầu của mình hơn.

Ví dụ chúng ta có thể quan tâm đến các thuộc tính AverageCost và SATAverage

df.intent = ["AverageCost","SATAverage"]
df

Hình: 2 thuộc tính "AverageCost","SATAverage"

Khi bạn muốn visualize nhanh hơn thì thực hiện như sau:

from lux.vis.Vis import Vis
Vis(["Region=New England","MedianEarnings"],df)

Hình: Kết quả

Tóm lại Lux rất nhanh chóng và tiện lợi phải không nào 😄

Pandas Profiling

Về package này mình đã có 1 bài viết ở đây . Mọi người tham khảo nhé. Với pandas Profiling thì bạn chỉ cần 1 dòng code là show hết tất cả những gì mà bạn mong muốn có luôn.

Mito

Mito là một thư viện có khả năng phân tích dữ liệu. Không giống như thư viện Pandas, Mito có giao diện giống như phần mềm bảng tính. Do đó, chúng tôi có thể khám phá và xử lý dữ liệu mà không cần phải code. Mỗi chỉnh sửa bạn thực hiện trong Mitosheet sẽ tạo Python tương đương trong ô mã bên dưới. Mito rất hữu ích với những bạn không biết code python hoặc không thích gõ code cho lắm, và những người chưa biết lựa chọn biểu đồ nào cho phù hợp với dữ liệu mình đang có.

Video hướng dẫn sử dụng Mito, mọi người có thể xem cách dùng Mito ở video trên hoặc ở tutorial mình cho ở đây .

Cài đặt

Thực hiện cài đặt Mito như sau

pip install mitoinstaller

python -m mitoinstaller install

Với Mito các bạn nên dùng jupyter lab nha 😄

Cùng thử xem nào

 import mitosheet
 mitosheet.sheet()

Chạy thử trên jupyter-lab thì mình được kết quả như dưới đây:

Hình: Mitosheet

Mình thấy yêu cầu nhập tài khoản mail để sử dụng. Ok, nhập mail vào thì được như thế này nè 😄

Hình: Mitosheet

Ở Hình trên chúng ta thấy có export, import file, có tạo pivot table, graph để visualize dữ liệu, ... việc của chúng ta chỉ cần click thôi chứ không cần phải viết code python nữa, quá hữu ích và nhanh chóng luôn. Ok cùng tiếp tục xem nào 😄

Ở đây mình sử dụng 2 file Airport-Pets.csvZipcode-Data.csv mọi người tải ở đây nè.

Import file

  • Đầu tiên chúng ta click vào import
  • Chọn file mà bạn muốn thực hiện trực quan hóa dữ liệu
  • click import file -> ok (như hình bên dưới)

Hình: import file

Sau khi mình import xong thì được ntn

Hình: import file

Như mình đã nói ở trên Mito bạn chỉ cần click chứ không cần phải viết code gì hết. Và lúc bạn thao tác thì Mito cũng tự động gen ra code luôn như dưới đây nè:

Hình: code Mito tự gen

from mitosheet import *; register_analysis('UUID-1c64d513-edbf-4f4f-9064-c185cfa053ee')
import pandas as pd
Airport_Pets = pd.read_csv(r'/home/pham.thi.hong.anh/Mito Tutorial Data/Airport-Pets.csv')

import pandas as pd
Zipcode_Data = pd.read_csv(r'/home/pham.thi.hong.anh/Mito Tutorial Data/Zipcode-Data.csv')

Cũng là dùng pandas để đọc csv nè. Vậy là chúng ta đã hoàn thành xong import data (đọc dữ liệu)

Merge các sheet lại

Bây giờ chúng ta tiến hành merge 2 file Airport-Pets.csvZipcode-Data.csv.

Đơn giản chỉ cần click vào merge là xong, chúng ta được df3 như dưới đây

Hình: merge file

Code thì như thế này đây, xịn quá 😄

# Merged Zipcode_Data and Airport_Pets
temp_df = Airport_Pets.drop_duplicates(subset='Zip') # Remove duplicates so lookup merge only returns first match
df3 = Zipcode_Data.merge(temp_df, left_on=['Zip'], right_on=['Zip'], how='left', suffixes=['_Zipcode_Data', '_Airport_Pets'])

Tạo pivot table

Bạn click vào Pivot xong lựa chọn cột mong muốn để tạo thành pivot table

Hình: Pivot Table

Code như dưới đây

# Pivoted df3 into df4
unused_columns = df3.columns.difference(set(['State']).union(set([])).union(set({'Mean_Income', 'Median_Income'})))
tmp_df = df3.drop(unused_columns, axis=1)
pivot_table = tmp_df.pivot_table(
    index=['State'],
    values=['Median_Income', 'Mean_Income'],
    aggfunc={'Median_Income': ['count'], 'Mean_Income': ['count']}
)
pivot_table.columns = [flatten_column_header(col) for col in pivot_table.columns.values]
df3_pivot_1 = pivot_table.reset_index()

Trực quan hóa

Mito còn cung cấp cả vẽ biểu đồ cho mình nữa, bạn muốn vẽ với column nào thì lựa chọn thôi nè 😄

Hình: trực quan hóa

Copy code Mito tự gen ra thì được vầy nè:

# Import plotly and create a figure
import plotly.graph_objects as go
fig = go.Figure()



# Add the bar chart traces to the graph
for column_header in ['State']:
    fig.add_trace(
        go.Bar( 
            x=df3[column_header],
            y=df3['Median_Income'],
            name=str(column_header)
        )
    )

# Update the title and stacking mode of the graph
# See Plotly documentation for customizations: https://plotly.com/python/reference/bar/
fig.update_layout(
    xaxis_title="State",
    yaxis_title="Median_Income",
    title="State, Median_Income bar chart",
    barmode='group',
)
fig.show(renderer="iframe")

Mito quá tiện đúng k nào, mọi người tự cài đặt về rồi khám phá nhé 😄

Kết Luận

Vậy là mọi nguời đã biết thêm các thư viện phân tích dữ liệu hữu ích rồi . Cảm ơn mọi người đã đọc bài viết của mình ạ. Mong mn đóng góp ý kiến 😄

Reference

https://medium.com/trymito/3-python-packages-to-try-in-2022-6126e37b111f

https://github.com/lux-org/lux

https://docs.trymito.io/

https://docs.trymito.io/getting-started/tutorial


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí