HomeLập trìnhPythonSê-ri và DataFrame...

Sê-ri và DataFrame trong Python


của Shubhi Asthana

Vdm71yRUEPTXuawMDTT7DE5UZgYPYUge1exo

Vài tháng trước, tôi đã tham gia khóa học trực tuyến “Sử dụng Python để nghiên cứu” do Đại học Harvard cung cấp trên edX. Trong khi tham gia khóa học, tôi đã học được nhiều khái niệm về Python, NumPy, Matplotlib và PyPlot. Tôi cũng có cơ hội làm việc với các nghiên cứu điển hình trong khóa học này và có thể sử dụng kiến ​​thức của mình trên các bộ dữ liệu thực tế. Để biết thêm thông tin về chương trình này, hãy xem tại đây.

Tôi đã học được hai khái niệm quan trọng trong khóa học này — Sê-ri và Khung dữ liệu. Tôi muốn giới thiệu những điều này với bạn thông qua một hướng dẫn ngắn.

Để bắt đầu với hướng dẫn, hãy lấy mã nguồn mới nhất của Python từ trang web chính thức tại đây.

Khi bạn đã cài đặt xong Python, bạn sẽ sử dụng giao diện người dùng đồ họa có tên là IDLE để làm việc với Python.

Hãy nhập Pandas vào không gian làm việc của chúng tôi. Pandas là một thư viện Python cung cấp cấu trúc dữ liệu và công cụ phân tích dữ liệu cho các chức năng khác nhau.

Loạt

Sê-ri là một đối tượng một chiều có thể chứa bất kỳ loại dữ liệu nào, chẳng hạn như số nguyên, số float và chuỗi. Hãy lấy một danh sách các mục làm đối số đầu vào và tạo một đối tượng Sê-ri cho danh sách đó.

>>> import pandas as pd
>>> x = pd.Series([6,3,4,6])
>>> x
0 6
1 3
2 4
3 6
dtype: int64

Các nhãn trục cho dữ liệu được gọi là chỉ mục. Độ dài của chỉ mục phải giống với độ dài của dữ liệu. Vì chúng tôi chưa chuyển bất kỳ chỉ mục nào trong mã ở trên, nên chỉ mục mặc định sẽ được tạo với các giá trị [0, 1, … len(data) -1]

Hãy tiếp tục và xác định các chỉ mục cho dữ liệu.

>>> x = pd.Series([6,3,4,6], index=[‘a’, ‘b’, ‘c’, ‘d’])
>>> x
a 6
b 3
c 4
d 6
dtype: int64

Chỉ mục ở hầu hết các cột bên trái hiện đề cập đến dữ liệu ở cột bên phải.

Đọc thêm  Bộ Python – Cách tạo Bộ trong Python

Chúng ta có thể tra cứu dữ liệu bằng cách tham khảo chỉ mục của nó:

>>> x[“c”]
4

Python cung cấp cho chúng tôi dữ liệu liên quan cho chỉ mục.

Một ví dụ về kiểu dữ liệu là từ điển được định nghĩa bên dưới. Chỉ mục và giá trị tương quan với khóa và giá trị. Chúng ta có thể sử dụng chỉ mục để lấy các giá trị dữ liệu tương ứng với các nhãn trong chỉ mục.

>>> data = {‘abc’: 1, ‘def’: 2, ‘xyz’: 3}
>>> pd.Series(data)
abc 1
def 2
xyz 3
dtype: int64

Một tính năng thú vị khác trong Sê-ri là có dữ liệu dưới dạng giá trị vô hướng. Trong trường hợp đó, giá trị dữ liệu được lặp lại cho từng chỉ mục được xác định.

>>> x = pd.Series(3, index=[‘a’, ‘b’, ‘c’, ‘d’])
>>> x
a 3
b 3
c 3
d 3
dtype: int64

Khung dữ liệu

DataFrame là một đối tượng hai chiều có thể có các cột với các loại tiềm năng khác nhau. Các loại đầu vào khác nhau bao gồm từ điển, danh sách, sê-ri và thậm chí cả một Khung dữ liệu khác.

Nó là đối tượng pandas được sử dụng phổ biến nhất.

Hãy tiếp tục và tạo DataFrame bằng cách chuyển một mảng NumPy với datetime dưới dạng chỉ mục và cột được gắn nhãn:

>>> import numpy as np
>>> dates = pd.date_range(‘20170505’, periods = 8)
>>> dates
Datetime Index([‘2017–05–05’, ‘2017–05–06’, ‘2017–05–07’, ‘2017–05–08’,
‘2017–05–09’, ‘2017–05–10’, ‘2017–05–11’, ‘2017–05–12’],
dtype=’datetime64[ns]’, freq=’D’)
>>> df = pd.DataFrame(np.random.randn(8,3), index=dates, columns=list(‘ABC’))
>>> df
A B C
2017–05–05 -0.301877 1.508536 -2.065571
2017–05–06 0.613538 -0.052423 -1.206090
2017–05–07 0.772951 0.835798 0.345913
2017–05–08 1.339559 0.900384 -1.037658
2017–05–09 -0.695919 1.372793 0.539752
2017–05–10 0.275916 -0.420183 1.744796
2017–05–11 -0.206065 0.910706 -0.028646
2017–05–12 1.178219 0.783122 0.829979

Khung dữ liệu có phạm vi thời gian là 8 ngày được tạo như hình trên. Chúng ta có thể xem các hàng trên cùng và dưới cùng của khung bằng cách sử dụng df.headdf.tail:

>>> df.head()
A B C
2017–05–05 -0.301877 1.508536 -2.065571
2017–05–06 0.613538 -0.052423 -1.206090
2017–05–07 0.772951 0.835798 0.345913
2017–05–08 1.339559 0.900384 -1.037658
2017–05–09 -0.695919 1.372793 0.539752
>>> df.tail()
A B C
2017–05–08 1.339559 0.900384 -1.037658
2017–05–09 -0.695919 1.372793 0.539752
2017–05–10 0.275916 -0.420183 1.744796
2017–05–11 -0.206065 0.910706 -0.028646
2017–05–12 1.178219 0.783122 0.829979

Chúng tôi cũng có thể quan sát một bản tóm tắt thống kê nhanh về dữ liệu của mình:

>>> df.describe()
A B C
count 8.000000 8.000000 8.000000
mean 0.372040 0.729842 -0.109691
std 0.731262 0.657931 1.244801
min -0.695919 -0.420183 -2.065571
25% -0.230018 0.574236 -1.079766
50% 0.444727 0.868091 0.158633
75% 0.874268 1.026228 0.612309
max 1.339559 1.508536 1.744796

Chúng tôi cũng có thể áp dụng các chức năng cho dữ liệu như tổng tích lũy, xem biểu đồ, hợp nhất DataFrames, nối và định hình lại DataFrames.

>>> df.apply(np.cumsum)
A B C
2017–05–05 -0.301877 1.508536 -2.065571
2017–05–06 0.311661 1.456113 -3.271661
2017–05–07 1.084612 2.291911 -2.925748
2017–05–08 2.424171 3.192296 -3.963406
2017–05–09 1.728252 4.565088 -3.423654
2017–05–10 2.004169 4.144905 -1.678858
2017–05–11 1.798104 5.055611 -1.707504
2017–05–12 2.976322 5.838734 -0.877526

Bạn có thể đọc thêm chi tiết về các cấu trúc dữ liệu này tại đây.

Đọc thêm  Cách giải thích dữ liệu bằng phân phối Gaussian và thống kê tóm tắt với Python



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status