Pandas

Giới thiệu về Pandas (một thư viện phổ biến của Python cho việc phân tích dữ liệu)

Pandas

Pandas là một thư viện mã nguồn mở được xây dựng dựa trên NumPy, sử dụng thao tác và phân tích dữ liệu, được thiết kế để cho phép bạn làm việc với dữ liệu được gắn nhãn hoặc quan hệ theo cách trực quan hơn

  • Có thể xử lý tập dữ liệu khác nhau về định dạng: chuỗi thời gian, bảng không đồng nhất, ma trận dữ liệu
  • Khả năng import dữ liệu từ nhiều nguồn khác nhau như CSV, DB/SQL
  • Có thể xử lý vô số phép toán cho tập dữ liệu: subsetting, slicing, filtering, merging, groupBy, re-ordering, and re-shaping,..
  • Xử lý dữ liệu mất mát theo ý người dùng mong muốn: bỏ qua hoặc chuyển sang 0
  • Xử lý, phân tích dữ liệu tốt như mô hình hoá và thống kê
  • Tích hợp tốt với các thư viện khác của python
  • Cung cấp hiệu suất tốt

Để cài đặt pandas nếu bạn có Anaconda chỉ cần gõ conda install pandas hoặc sử dụng tools pip pip install pandas.

Sau khi cài đặt xong, trong Python, chúng ta cần khai báo import pandas để có thể bắt đầu sử dụng các hàm của pandas. Vì pandas là thư viện được sử dụng thường xuyên nên nó thường được khai báo gọn lại thành pd import pandas as pd pd có thể thay thế bằng các từ khác, tuy nhiên bạn nên đặt là pd vì các tài liệu hướng dẫn đều ngầm quy ước như thế

Pandas có ba cấu trúc dữ liệu và nó được xây dựng dựa trên thư viện Numpy vậy nên chúng hoạt động rất nhanh và hiệu quả: Series, DataFrame, Panel.

Series

Series là mảng một chiều giống như mảng Numpy, hay như một cột của một bảng, nhưng nó bao gồm thêm một bảng đánh label. Series có thể được khởi tạo thông qua NumPy, kiểu Dict hoặc các dữ liệu vô hướng bình thường

Series có thể được tạo bằng cách sử dụng hàm tạo sau pandas.Series( data, index, dtype, copy)

Mô tả
data có nhiều dạng khác nhau như ndarray (mảng n chiều), list, constants
index Các giá trị index phải là duy nhất và có thể là hash có cùng độ dài với dữ liệu Mặc định np.arrange (n) nếu không có chỉ mục nào được thông qua
dtype loại dữ liệu. Nếu không có, kiểu dữ liệu sẽ được suy ra
copy Sao chép dữ liệu, mặc định là false

Một Series có thể được tạo bằng các đầu vào khác nhau như: Array, Dict, Scalar value hoặc constant

Tạo một series rỗng:

Example 1:

#Khai báo thư viện pandas và khai báo nó là pd
import pandas as pd
s = pd.Series()
print s

Output của nó là như sau:

0   a
1   b
2   c
3   d
dtype: object

Khi chúng ta không truyền index, thì mặc định nó sẽ đánh từ 0 đến len(data)-1

Example 2:

#Khai báo thư viện pandas và khai báo nó là pd
import pandas as pd
import numpy as np
data = np.array(['a','b','c','d'])
s = pd.Series(data,index=[100,101,102,103])
print s

Output của nó

100  a
101  b
102  c
103  d
dtype: object

Chúng tôi đã truyền index ở đây. Bây giờ chúng ta có thể thấy các giá trị được lập index tùy chỉnh trong đầu ra

Tạo một Series từ dict

#import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
data = {'a' : 0., 'b' : 1., 'c' : 2.}
s = pd.Series(data,index=['b','c','d','a'])
print s

Output:

b 1.0
c 2.0
d NaN
a 0.0
dtype: float64

Chú ý: Thứ tự của index được duy trì và phần tử bị thiếu được lấp đầy bằng NaN (Không phải là số

Tạo một Series từ Scalar

Nếu dữ liệu là một giá trị scalar, index phải được cung cấp. Giá trị sẽ được lặp lại để phù hợp với độ dài của index

#import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
s = pd.Series(5, index=[0, 1, 2, 3])
print s

Output:

0  5
1  5
2  5
3  5
dtype: int64

Truy cập dữ liệu từ Series với Position

Dữ liệu trong series có thể được truy cập tương tự như dữ liệu trong một ndarray.

Example

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])
print s[0] # Lấy phần tử đầu tiên

Output:

1
import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])
print s[:3] # Lấy 3 phần tử đầu tiên

Output:

a  1
b  2
c  3
dtype: int64
import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])
print s[-3:] # Lấy 3 phần tử cuối cùng

Output:

c  3
d  4
e  5
dtype: int64

Truy xuất dữ liệu bằng Label (Index)

Example 1: Truy xuất một phần tử bằng giá trị index label

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])

# Lấy một phần tử
print s['a'] # Output: 1

Example 2: Truy xuất nhiều phần tử bằng cách sử dụng danh sách các giá trị index label

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])

# Lấy nhiều phần tử
print s[['a','c','d']]

Output:

a  1
c  3
d  4
dtype: int64

Example 3: Nếu label không tồn tại, thì sẽ ném exception

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])

# Lấy một phần tử
print s['f']

Output:

…
KeyError: 'f'
Registration Login
Sign in with social account
or
Lost your Password?
Registration Login
Sign in with social account
or
A password will be send on your post
Registration Login
Registration