Trong bài trước ta đã tìm hiểu về pandas cũng như cách cài đặt thư viện này, vậy thì trong bài này ta sẽ tìm hiểu về Pandas Object, một kiến thức quan trọng khi học Pandas.
Nội dung chính
- 1. Pandas Series Object
- 2. Pandas DataFrame Object
- DataFrame là mảng NumPy
- DataFrame là Dictionary
- Các cách để tạo DataFrame
- 3. Pandas Index Object
- Index là immutable array
- Index là ordered set
- 4. Tổng kết
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.freetuts.net, không được copy dưới mọi hình thức.
Ở mức độ cơ bản nhất thì bạn có thể hiểu Pandas object giống như phiên bản nâng cấp của NumPy Structured Array [bài cuối cùng trong chương NumPy], trong đó các hàng và cột được xác định bằng nhãn [label] thay vì bằng các số nguyên như chỉ mục truyền thống.Pandas object giống như phiên bản nâng cấp của NumPy Structured Array [bài cuối cùng trong chương NumPy], trong đó các hàng và cột được xác định bằng nhãn [label] thay vì bằng các số nguyên như chỉ mục truyền thống.
Trong bài này, chúng ta sẽ cùng nhau tìm hiểu ba kiểu cấu trúc dữ liệu của Pandas: Series, DataFrame và Index.
1. Pandas Series Object
2. Pandas DataFrame Object
DataFrame là mảng NumPy
In[2]
freetuts_views = pd.Series[[1232, 3234, 3250, 2222]] freetuts_views
Out[2]
0 1232 1 3234 2 3250 3 2222 dtype: int64
DataFrame là Dictionaryvalues và index.
Các cách để tạo DataFramevalues thì giá trị trả về chính là một mảng NumPy:
In[3]
freetuts_views.values
Out[3]
array[[1232, 3234, 3250, 2222], dtype=int64]
3. Pandas Index Objectpd.Index [ta sẽ nói rõ ở chương 3]:
In[4]
freetuts_views.index
Out[4]
RangeIndex[start=0, stop=4, step=1]
Index là immutable array
Index là ordered set
In[6]
freetuts_views[0:3]
Out[6]
0 1232 1 3234 2 3250 dtype: int64
4. Tổng kết
2. Pandas DataFrame Object
DataFrame là mảng NumPy
DataFrame là mảng NumPy
DataFrame là Dictionary
Các cách để tạo DataFrame
In[7]
population_dict = {'TP.HCM': 8993, 'Hanoi': 8053, 'Lam Dong': 1297, 'Quang Tri': 623} population = pd.Series[population_dict] population
Out[7]
TP.HCM 8993 Hanoi 8053 Lam Dong 1297 Quang Tri 623 dtype: int64
3. Pandas Index Object
In[8]
0 1232 1 3234 2 3250 3 2222 dtype: int640
Out[8]
0 1232 1 3234 2 3250 3 2222 dtype: int641
Index là immutable array
In[9]
0 1232 1 3234 2 3250 3 2222 dtype: int642
Out[9]
0 1232 1 3234 2 3250 3 2222 dtype: int643
Index là ordered set
4. Tổng kết
Out[10]
0 1232 1 3234 2 3250 3 2222 dtype: int644
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
Out[11]
0 1232 1 3234 2 3250 3 2222 dtype: int645
DataFrame là Dictionary
Các cách để tạo DataFrame
Out[12]
0 1232 1 3234 2 3250 3 2222 dtype: int646
3. Pandas Index Object
In[13]
0 1232 1 3234 2 3250 3 2222 dtype: int647
Out[13]
0 1232 1 3234 2 3250 3 2222 dtype: int648
Các cách để tạo DataFrame
3. Pandas Index Object
Index là immutable array
In[14]
0 1232 1 3234 2 3250 3 2222 dtype: int649
Out[14]
freetuts_views.values0
Index là ordered set
4. Tổng kết
In[15]
freetuts_views.values1
Out[15]
freetuts_views.values2
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
In[16]
freetuts_views.values3
freetuts_views.values4
Ở mức độ cơ bản nhất thì bạn có thể hiểu Pandas object giống như phiên bản nâng cấp của NumPy Structured Array [bài cuối cùng trong chương NumPy], trong đó các hàng và cột được xác định bằng nhãn [label] thay vì bằng các số nguyên như chỉ mục truyền thống.
Trong bài này, chúng ta sẽ cùng nhau tìm hiểu ba kiểu cấu trúc dữ liệu của Pandas: Series, DataFrame và Index.
Series trong Pandas có thể hiểu đơn giản chính là mảng một chiều. Nó có thể được tạo từ một mảng đơn giản như sau:
In[17]
Bài viết này được đăng tại [free tuts .net]In[17]
freetuts_views.values6
Như ta có thể ở output, Series bao gồm cả mảng dữ liệu và một mảng chỉ mục [index] mà ta có thể truy cập qua 2 thuộc tính values và index.
Với values thì giá trị trả về chính là một mảng NumPy:
In[18]
freetuts_views.values7
Out[18]
freetuts_views.values8
Còn index thì giá trị trả về có kiểu object pd.Index [ta sẽ nói rõ ở chương 3]:
In[19]
freetuts_views.values9
array[[1232, 3234, 3250, 2222], dtype=int64]0
Giống như NumPy, dữ liệu có thể được truy cập theo cách truyền thống như sau:
Hoặc sử dụng array slicing:
In[20]
array[[1232, 3234, 3250, 2222], dtype=int64]1
Out[20]
array[[1232, 3234, 3250, 2222], dtype=int64]2
3. Pandas Index Object
Sau khi đã tìm hiểu về Series và DataFrame, ta có thể thấy 2 object này đều chứa một thuộc tính là index trong đó nó không phải trả về một mảng bình thường mà là một kiểu dữ liệu riêng biệt, chính vì điều này mà ta có thể thấy index trong pandas là một thuộc tính khá quan trọng.
Bản thân Index object có thể là immutable array [mảng bất biến] hoặc là ordered set [tập hợp sắp thứ tự], do đó có khá nhiều thứ thú vị mà ta có thể làm với Index object, ta sẽ tìm hiểu về các trường hợp cụ thể.
Index là immutable array
Index về cơ bản khá giống với một mảng bình thường, chỉ trừ một điều duy nhất là nó có tính bất biến "immutable" [không thay đổi được giá trị], ví dụ:
In[21]
array[[1232, 3234, 3250, 2222], dtype=int64]3
Out[21]
array[[1232, 3234, 3250, 2222], dtype=int64]4
Mục đích của việc để tính bất biến cho mảng Index chính là nhằm đảm bảo an toàn Còn lại nhìn chung thì nó có hầu hết các đặc điểm của một mảng NumPy, chẳng hạn:
In[22]
array[[1232, 3234, 3250, 2222], dtype=int64]5
Out[22]
array[[1232, 3234, 3250, 2222], dtype=int64]6
Và chứa các thuộc tính của mảng NumPy:
In[23]
array[[1232, 3234, 3250, 2222], dtype=int64]7
Index là ordered set
Index object tuân theo nhiều quy ước giống như sets trong Python [vốn tuân theo lý thuyết tập hợp], vậy nên các phép toán như hợp, giao, hiệu và các phép toán khác có thể được dùng như sau:
In[24]
array[[1232, 3234, 3250, 2222], dtype=int64]8
array[[1232, 3234, 3250, 2222], dtype=int64]9
4. Tổng kết
Trong bài này chúng ta đã tìm hiểu về 3 object chính trong Pandas - Series, DataFrame và Index. Nhìn chung thì các khái niệm như Series hay DataFrame đều không quá khó hiểu, nó cũng là nền tảng cho toàn bộ series Pandas này.
Trong bài tiếp, chúng ta sẽ tìm hiểu về Data Indexing và Selection nhé, hẹn gặp bạn ở bài tiếp theo.