Cách loại bỏ MultiIndex columns trong Pandas
Bài viết này hướng dẫn cách loại bỏ các cột MultiIndex trong DataFrame của Pandas, một tính năng hữu ích khi làm việc với dữ liệu phức tạp có nhiều chỉ mục. Bạn sẽ học cách làm phẳng MultiIndex hoặc loại bỏ chúng hoàn toàn.
Pandas cung cấp tính năng MultiIndex cho phép bạn có nhiều cấp độ chỉ mục cho hàng và cột. Trong một số trường hợp, bạn có thể muốn loại bỏ MultiIndex columns để đơn giản hóa dữ liệu. Trong bài viết này, bạn sẽ tìm hiểu cách loại bỏ hoặc làm phẳng MultiIndex cột trong Pandas.
Mã Python:
import pandas as pd
# Tạo một DataFrame với MultiIndex columns
arrays = [['A', 'A', 'B', 'B'], ['one', 'two', 'one', 'two']]
tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
df = pd.DataFrame([[1, 2, 3, 4], [5, 6, 7, 8]], columns=index)
# Hiển thị DataFrame gốc
print("DataFrame với MultiIndex columns:")
print(df)
# Cách loại bỏ MultiIndex columns
df.columns = ['_'.join(col) for col in df.columns]
# Hiển thị DataFrame sau khi loại bỏ MultiIndex columns
print("\nDataFrame sau khi loại bỏ MultiIndex columns:")
print(df)
Giải thích chi tiết từng dòng code:
-
import pandas as pd
: Import thư viện Pandas để làm việc với DataFrame. -
arrays = [['A', 'A', 'B', 'B'], ['one', 'two', 'one', 'two']]
: Tạo một danh sách con cho MultiIndex. -
tuples = list(zip(*arrays))
: Tạo các tuple từ các danh sách con bằng cách sử dụngzip
. -
index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
: Tạo MultiIndex columns từ danh sách các tuple. -
df = pd.DataFrame(...)
: Tạo DataFrame với các cột có MultiIndex. -
df.columns = ['_'.join(col) for col in df.columns]
: Nối các mức của MultiIndex lại thành một chuỗi để loại bỏ MultiIndex. -
print(df)
: In ra DataFrame sau khi đã loại bỏ MultiIndex columns.
Yêu cầu hệ thống:
- Python 3.6 trở lên
- Pandas phiên bản 1.0.0 hoặc mới hơn
Cách cài đặt các thư viện để chạy được đoạn mã python trên:
Sử dụng pip để cài đặt Pandas:
pip install pandas
Lời khuyên:
- Khi làm việc với dữ liệu phức tạp, MultiIndex rất hữu ích, nhưng nếu bạn không cần, hãy cân nhắc làm phẳng để dễ xử lý hơn.
- Bạn có thể tùy chỉnh cách nối các mức của MultiIndex bằng ký tự khác thay vì
_
.