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. Show Nội dung chính
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 Object2. 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 ObjectDataFrame là mảng NumPy DataFrame là mảng NumPyDataFrame 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à DictionaryCá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 DataFrame3. Pandas Index Object Index là immutable arrayIn[14] 0 1232 1 3234 2 3250 3 2222 dtype: int649 Out[14] freetuts_views.values0 Index là ordered set4. 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 ObjectSau 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 arrayIndex 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 setIndex 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ếtTrong 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. |