Hướng dẫn dataframe index in python - chỉ mục khung dữ liệu trong python

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

Hướng dẫn dataframe index in python - chỉ mục khung dữ liệu trong python

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 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: int64
0

Out[8]

0    1232
1    3234
2    3250
3    2222
dtype: int64
1

Index là immutable array

In[9]

0    1232
1    3234
2    3250
3    2222
dtype: int64
2

Out[9]

0    1232
1    3234
2    3250
3    2222
dtype: int64
3

Index là ordered set

4. Tổng kết

Out[10]

0    1232
1    3234
2    3250
3    2222
dtype: int64
4

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: int64
5

DataFrame là Dictionary

Các cách để tạo DataFrame

Out[12]

0    1232
1    3234
2    3250
3    2222
dtype: int64
6

3. Pandas Index Object

In[13]

0    1232
1    3234
2    3250
3    2222
dtype: int64
7

Out[13]

0    1232
1    3234
2    3250
3    2222
dtype: int64
8

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: int64
9

Out[14]

freetuts_views.values
0

Index là ordered set

4. Tổng kết

In[15]

freetuts_views.values
1

Out[15]

freetuts_views.values
2

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.values
3
freetuts_views.values
4

Ở 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.values
6

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.values
7

Out[18]

freetuts_views.values
8

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.values
9
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.